Iphone 以编程方式拍摄的MKMapView屏幕截图中不会捕获覆盖
我一直在尝试在MKMapView上截图,我正在其上绘制用户位置,使用类、覆盖和覆盖视图类绘制路径 下面是我用来获取屏幕截图的代码:Iphone 以编程方式拍摄的MKMapView屏幕截图中不会捕获覆盖,iphone,ios,xcode,mkmapview,mapkit,Iphone,Ios,Xcode,Mkmapview,Mapkit,我一直在尝试在MKMapView上截图,我正在其上绘制用户位置,使用类、覆盖和覆盖视图类绘制路径 下面是我用来获取屏幕截图的代码: if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) UIGraphicsBeginImageContextWithOptions(self.view.frame.size, NO, [UIScreen mainScreen].scale); else UIGraphics
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
UIGraphicsBeginImageContextWithOptions(self.view.frame.size, NO, [UIScreen mainScreen].scale);
else
UIGraphicsBeginImageContext(self.view.frame.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage * viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIImage * croppedImage = [Utils cropImage:viewImage withFrame:_map.frame];
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(croppedImage, nil, nil, nil);
我尝试获取的屏幕截图应如下所示:
但是我得到的截图是这样的:
在这里,您可以注意到屏幕截图中没有蓝线(用户位置路径)
有人能帮我提出解决方案吗?或者我做错了什么
谢谢大家。使用我的自定义方法返回当前视图的图像
- (UIImage *)captureView {
//hide controls if needed
CGRect rect = [self.view bounds];
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
[self.view.layer renderInContext:context];
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return img;
}
你在这里提到的方法几乎和我的完全一样。不适用于我的案例。但在我的案例中,我会按照您的要求保存图像,并检查一些隐藏的内容。路线的覆盖视图可能是dude…@HarisHussain可能会发生bcoz您使用OpenGL的概念,因此请查看此链接,您可能会从中获得一些想法dude:)这是一个很好的建议,在截图前检查覆盖层是否未发布,解决了问题。谢谢:)确保在添加覆盖后捕获屏幕截图:P屏幕截图是已添加到地图视图上的覆盖的证明:P