百度地图的Demo中都会在页面的viewWillAppear:
和viewWillDisappear:
方法中调用百度地图对应的viewWillAppear
和viewWillDisappear
方法,以恢复之前存储的mapview状态
和存储当前mapview的状态
,调用的过程可以这样来描述:
当调用[mapView viewWillDisappear]
方法后即存储当前mapview的状态
后,mapView就会回到默认状态,显示的位置在北京天安门,[mapView viewWillAppear]
又会重新设置状态,并且会重新渲染可见区域的瓦片
虽然我觉得这样写并没什么卵用,反而会在viewWillAppear
后重新渲染,但是既然Demo这样写也就无所谓了。
但但但是,这样写竟然会影响到pop
的边缘返回手势的流畅度,这就不能忍了:于是代码中我注释掉[mapView viewWillAppear]
,[mapView viewWillDisappear]
方法,这样返回就很流畅了(也不会有地图闪一下的情况)。
解决问题、、
在updateViewConstraints
中调用代码
[mapView viewWillAppear];
在- (void)viewWillAppear:(BOOL)animated
中调用代码
self.mapView.compassPosition = CGPointMake(15, 15);// 设置指南针位置
不在调用代码
[mapView viewWillDisappear];
这样就解决了指南针不显示的问题了