MKMapView setRegion不是常量

时间:2010-11-19 00:54:19

标签: iphone mkmapview region

我正在viewWillAppear中设置我的MKMapView区域:这样一旦用户看到它,地图就会立即显示好区域:

[mapView setRegion:region animated:NO];

我第一次这样做,我就像这样修剪区域:

alt text

然后从那里开始,当我设置完全相同的区域时,我会得到这样的结果:

alt text

第二个屏幕截图是我想从头开始的。我的猜测是我第一次设置区域,mapview没有完全加载或沿着这些线。我应该做些什么来解决这个问题?

编辑:这可能是相关的:在第一次调用viewDidAppear之前向mapView添加注释也不起作用。 pinView只是没有显示出来。如何确保地图视图可以在viewWillAppear中使用?

3 个答案:

答案 0 :(得分:1)

前一段时间有关setRegion方法的问题已经报道,我不知道从那时起它们是否已被修复。请查看Apple Dev论坛上的以下文章:

https://devforums.apple.com/message/57488

答案 1 :(得分:1)

我偶然发现this thread建议在setRegion:电话中添加延迟(如果你需要在viewWillAppear方法中调用它)。有点傻,但它的工作原理。

- (void)viewWillAppear:(BOOL)animated {
    [self performSelector:@selector(centerMap:) withObject:nil afterDelay:0.01];
}

我真的很好奇mapView缺少什么来做正确的重新定位而没有这种延迟。

答案 2 :(得分:0)

您是否尝试过使用MKMapViewDelegate mapViewDidFinishLoadingMap消息进行调用?也许这已经足够晚了才能使该地区正确?