如何判断MKMapView和可见MKAnnotationView何时完成绘图?
问题描述:
我正在显示带有MKAnnotations的MKMapView,其中一些已被选中并显示其注释。 我正在尝试使用-renderInContext获取显示的映射和注释的图像。如何判断MKMapView和可见MKAnnotationView何时完成绘图?
90%的时间Map,MKPinAnnotationView和选定的注释被正确捕获。 其他10%的图像缺少的东西,通常MKPinAnnotationViews或他们的注释,如果选择。
我已经添加了代码来处理地图本身加载它的地图数据。
但是我一直没有找到可以指示所有可见的MKPinAnnotationView被绘制为 的东西,并且如果选择了它们的注释显示?
我遇到过的最接近的提示是addObserver,虽然我还没有想出什么可以观察到会告诉我什么时候所有的绘图完成。
想法?
答
好吧我是个白痴...... 我终于找到了这个问题。在我的viewForAnnotation例程在MKMapView委托协议我没有正确设置重用MKPinAnnotationView的值。 因此,有些时候我会重复使用.canShowCallout设置为YES的视图,其他时候我会重复使用将.canShowCallout设置为NO的视图。
。 <
答
尝试使用MKMapViewDelegate didAddAnnotationViews方法。
如果在该方法中,绘图仍未准备好满足您的要求,您可以在那里使用performSelector:withObject:afterDelay:来调用捕获方法。
我遇到类似的问题,但是另一半 - 你怎么知道地图何时完成加载地图数据? (当tile被缓存时,mapViewDidFinishLoadingMap不会触发)。你说你添加了代码来处理这个问题 - 这是什么样的? – Jeremy 2011-06-22 21:18:34
我有同样的问题检测加载谷歌瓷砖。 @Jeremy你有没有找到解决办法? – alekhine 2011-11-03 12:10:42