Iphone 以编程方式拍摄的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

我一直在尝试在MKMapView上截图,我正在其上绘制用户位置,使用类、覆盖和覆盖视图类绘制路径

下面是我用来获取屏幕截图的代码:

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