Поделиться скриншот 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 предоставила вам инструменты, которые вам нужны, чтобы делать с изображением все, что вы хотите, чтобы не было никаких ограничений относительно того, что вы делаете с ним.

Другие вопросы по тегам