mapViewDidFinishLoadingMap: called too early

2019-04-29 05:18发布

My problem is simple: I'm waiting to take a screenshot of an MKMapView, and I want to do it only once the map is loaded. Unfortunately, this delegate method is almost always called before the map is actually loaded. I just get a grid, or a few loaded tiles if I'm lucky. Is there a good way to do what I need to do? Or am I missing something in the MKMapViewDelegate protocol?

Thanks!

2条回答
Juvenile、少年°
2楼-- · 2019-04-29 05:45

Perhaps you could try adding a timer and then take the screenshot in the completion block of the timer. Or perhaps, use the mapView:didUpdateUserLocation: delegate method as the callback for the screenshot instead of mapView:DidFinishLoadingMap:

查看更多
Explosion°爆炸
3楼-- · 2019-04-29 05:48

It seems this is one of the many bugs in MapKit in iOS 6. Hopefully it will be fixed with iOS 7.

查看更多
登录 后发表回答