2010-11-05 51 views
1

我正在显示带有MKAnnotations的MKMapView,其中一些已被选中并显示其注释。 我正在尝试使用-renderInContext获取显示的映射和注释的图像。如何判断MKMapView和可见MKAnnotationView何时完成绘图?

90%的时间Map,MKPinAnnotationView和选定的注释被正确捕获。 其他10%的图像缺少的东西,通常MKPinAnnotationViews或他们的注释,如果选择。

我已经添加了代码来处理地图本身加载它的地图数据。

但是我一直没有找到可以指示所有可见的MKPinAnnotationView被绘制为 的东西,并且如果选择了它们的注释显示?

我遇到过的最接近的提示是addObserver,虽然我还没有想出什么可以观察到会告诉我什么时候所有的绘图完成。

想法?

+1

我遇到类似的问题,但是另一半 - 你怎么知道地图何时完成加载地图数据? (当tile被缓存时,mapViewDidFinishLoadingMap不会触发)。你说你添加了代码来处理这个问题 - 这是什么样的? – Jeremy 2011-06-22 21:18:34

+0

我有同样的问题检测加载谷歌瓷砖。 @Jeremy你有没有找到解决办法? – alekhine 2011-11-03 12:10:42

回答

1

好吧我是个白痴...... 我终于找到了这个问题。在我的viewForAnnotation例程在MKMapView委托协议我没有正确设置重用MKPinAnnotationView的值。 因此,有些时候我会重复使用.canShowCallout设置为YES的视图,其他时候我会重复使用将.canShowCallout设置为NO的视图。

。 <

0

尝试使用MKMapViewDelegate didAddAnnotationViews方法。

如果在该方法中,绘图仍未准备好满足您的要求,您可以在那里使用performSelector:withObject:afterDelay:来调用捕获方法。

+0

我实际上已经在使用该方法,并且仍然无法获得一致的结果。无论我允许的时间如何,我都无法保证将显示注释。我正在检查所有我可以窗口superview selectedAnnotations他们都建议注释是有效和显示的,但它不是(至少不一致)。一个提示是,当我在地图上同时显示多个注释时,这似乎不一致。 – morgman 2010-11-08 16:20:55

+0

也许如果您发布了一些重复出现问题的代码片段或addAnnotation和capture方法,可能会弹出一些内容。 – Anna 2010-11-08 16:55:32

相关问题