我有一个MKMapView
,我想截屏并将其分享到社交网络,例如Facebook。我找到了一种制作屏幕截图的好方法,使用MKMapSnapshotter
(从 iOS 7 开始可用),但我的问题是:我可以分享屏幕截图MKMapView
吗?苹果允许这样做吗?
我发现了这个类似的问题,但没有给出任何明确的答案。
试用适用于 iOS 的 Google Maps SDK: 文档
并使用以下代码制作屏幕截图:
CGRect rect = [captureView bounds];
UIGraphicsBeginImageContextWithOptions(rect.size,YES,0.0f);
CGContextRef context = UIGraphicsGetCurrentContext();
[captureView.layer renderInContext:context];
UIImage *capturedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
是的,当然,为什么苹果会反对你?
你肯定可以分享图像。正如您所提到的,您拥有只需要使用默认共享表的图像。这是代码:
NSArray *activityItems = [NSArray arrayWithObjects:yourImage, nil];
UIActivityViewController *aActivityView = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
aActivityView.modalInPopover = UIModalTransitionStyleCoverVertical;
[self presentViewController:aActivityView animated:YES completion:^{
}];
这将呈现一个UIActivityViewController
包含共享选项的视图。
希望这可以帮助。
我的直觉是;为什么苹果不允许这样做?
如果您已经设法获得了UIImage
使用MKMapView
Apple 提供的MKMapSnapshotter
图像,我会冒险猜测 Apple 已经为您提供了所需的工具,您可以对图像进行任何操作,因此您可以使用该图像没有任何限制它。