我一直试图在MKMapView上截取我正在绘制用户位置的截图,使用BreadCrumbs类CrumbPath类和CrumbPathView叠加层和叠加层视图类绘制路径。
以下是我用于获取屏幕截图的代码:
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);
ScreenShot我想要得到的应该是这样的:
但ScreenShot看起来像这样:
在这里您可以注意到ScreenShot中没有蓝线(用户位置路径)。
任何人都可以帮我建议解决方案或我在这里做错了什么?
谢谢大家。
答案 0 :(得分:1)
使用此我的自定义方法返回当前视图的图像..
- (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;
}