Поделиться скриншот MKMapView
У меня есть MKMapView
и я хотел бы сделать снимок экрана и поделиться им в социальной сети, например, в Facebook. Я нашел хороший способ сделать скриншот, используя MKMapSnapshotter
(доступно начиная с iOS 7), но мой вопрос: могу ли я поделиться снимком экрана с MKMapView
? Apple разрешает это?
Я нашел этот похожий вопрос, но там не дано однозначного ответа.
3 ответа
Попробуйте Google Maps SDK для iOS: Документация
И чтобы сделать скриншот, используйте следующий код:
CGRect rect = [captureView bounds];
UIGraphicsBeginImageContextWithOptions(rect.size,YES,0.0f);
CGContextRef context = UIGraphicsGetCurrentContext();
[captureView.layer renderInContext:context];
UIImage *capturedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Да, конечно, почему Apple возражает против вас?
Вы можете обязательно поделиться изображением. Как вы уже упоминали, у вас есть изображение, вам просто нужно использовать лист обмена по умолчанию. вот код:
NSArray *activityItems = [NSArray arrayWithObjects:yourImage, nil];
UIActivityViewController *aActivityView = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
aActivityView.modalInPopover = UIModalTransitionStyleCoverVertical;
[self presentViewController:aActivityView animated:YES completion:^{
}];
Это представит UIActivityViewController
вид, который будет иметь возможность поделиться в нем.
Надеюсь это поможет.
Мое чувство кишки было бы; почему Apple не допустит этого?
Если вам уже удалось захватить UIImage
представление вашего MKMapView
с помощью Apple при условии MKMapSnapshotter
Я бы рискнул предположить, что Apple предоставила вам инструменты, которые вам нужны, чтобы делать с изображением все, что вы хотите, чтобы не было никаких ограничений относительно того, что вы делаете с ним.