的MKMapView和setRegion:动画:不更新地图的视觉效果
-
11-09-2019 - |
题
问候!我试图使用的MKMapView 没有任何苹果的代码示例,但也有少数人在那里不同的清晰度。 (我知道,“阅读友好手册。”我已经做了,但它不是100%清晰,所以请多多包涵在这一个。)
这里的情况。我有一个的的MKMapView 强>对象,其特征在于,我已经增加了一组约10的 MKPinAnnotation 强>对象。到现在为止还挺好。一切alloced /三立释放并且似乎没有被从仪器的投诉。
在初始显示,我设置了一个的 MKCoordinateRegion 强>使用在我们的第一销位置中心点对象,以及0.2×0.2(任意)跨度。然后调用:
[mapView setRegion:region animated:YES];
[mapView regionThatFits:region];
哇!这种运作良好。
...同时我也有一个分段的控制,以允许移动到每个引脚位置。因此,正如我通过列表挖掘,映射到动画每个新销位置与一对新的呼叫为 setRegion:动画:和<强> regionThatFits:强> ...或至少这是想法。
虽然地图确实“旅行”到新的销的位置,在地图本身不下方更新。相反,我看到我的脚在灰色/空白图背景... 直到的我轻移在任何方向上的地图,但略有下降。然后地图显示通过! (如果我只先前引脚位置的一个短的距离内移动,我将通常看到无论地图的一部分已经加载。)
我怀疑我做了愚蠢的事情在这里,但我一直没能到什么,至少不是从MapKit文档弄清楚。也许我用错了电话? (哦,我需要设置区域至少一次,是移动周围似乎并没有帮助,但?)我一直在使用的 setCenterCoordinate也试过:动画: - 同样的问题
我假定没有在这一点上(没有双关语意)。只是想找到我的路。
欢迎/理解的线索!
UPDATE:调用的 setRegion:动画:和<强> regionThatFits:强>第一次,随后的 setCenterCoordinate:动画:强>在遍历列表中,具有没有效果。有趣的发现是:如果我在这两种情况下改变动画为NO,地图更新!只有当它被设置为YES。 (WHA发生?是动画:破这不可能是... ???)
解决方案
事实证明,使用仿真时的地图更新不起作用。当我尝试 setCenterCoordinate:动画:在设备上后,我的做的获取地图更新下面
底线:我信任模拟器到装置中的地图更新行为方面相匹配。唉,我错了!学过的知识。 “不要让这发生在你身上。” :)
其他提示
您需要调用在主线程上下文setRegion:animated:
电话。
只是这样做:
....
[self performSelectorOnMainThread:@selector(updateMyMap) withObject:nil waitUntilDone:NO];
}
-(void) updateMyMap {
[myMap setRegion:myRegion animated:YES];
}
和它应该在任何情况下工作(动画与否),与地图下方更新。
坎奇怪。即使是在模拟器我的Mac上的地图更新。也许网络设置(代理或其他),将阻止地图工具下载仿真器上的瓷砖?
尽管这是一个老话题,我想我会打电话与我的经验。这似乎在地图动画不仅不能在运行iOS 3.1.X和模拟器运行3.1.x.设备我与3.1.3开发的iPod touch无法放大,如果动画上。