MKMapView setRegion:动画:在模拟器上工作,但不在设备上iOS6

问题描述:

我有一个MKMapView。要更改显示的区域我用MKMapView setRegion:动画:在模拟器上工作,但不在设备上iOS6

[self.mapView setRegion:region animated:YES]; 

奇怪的是,在模拟器中的区域与动画的改变,但在设备上的变化是直接而不是动画。

我改变该地区在地图上长按后...

这种行为让我疯狂,我不能能解决它...... 谢谢...

+0

您在ios 7上测试过吗? – VivienCormier

+1

当你尝试在设备上设置区域时,你是否尝试过延迟?我在考虑地图加载速度不够快。 – soryngod

+0

@soryngod你能解释得更好吗?因为我不明白你的意思...... – Fry

您需要通过使用下面的代码

[self performSelector:@selector(setMapRegion) withObject:nil afterDelay:3.0]; 


-(void) setMapRegion 
{ 
[self.mapView setRegion:region animated:YES]; 
} 
+1

我不这么认为会影响。 –

+0

它帮助我很多 – Vinodh

如果加载的设备和iOS地图6+你会经历一个有点延迟,直到瓦片被加载,从而做到的最好的事情就是尽量拖延放缓setRegion该地区的变化。

即使您设置了动画,地图也无法响应,它对您而言不会显得那么清晰,它看起来好像没有制作任何动画。

MKMapView一旦地图加载了所有必要的图块并准备使用,就会调用它的代理方法mapViewDidFinishLoadingMap:。那里你应该打电话setRegion:animated: