解决iOS百度地图只能缩放不能四周拖动问题

项目中集成了百度地图,遇到一个bug, 多个ViewController都有创建MapView的对象,在子页面中的地图只能缩放,不能四周拖动,时好时坏,有时候要等一段时间,地图就不能拖动了,只能缩放,一直没解决,也百度不出结果.

jianshuGif.gif

(子页面的地图,只能缩放,不能拖动)

其实问题在于在首页调用了百度地图的定位功能:

[_locService startUserLocationService];

但是在离开首页时,没有调用:

[_locService stopUserLocationService];

因为你的定位请求是实时不间断发出去的,最新的定位请求刚发出,还没来得及返回,就离开当前页面,但之后请求返回了,就在子页面中执行新的地图对象的操作命令,可能是唤醒了之前主页面的地图,所以当前页面的地图是不可拖动的.

如果不能销毁的界面,离开界面执行[mapView viewWillDisappear]后,不要在执行操作地图的代码(举个例子,比如有个网络请求之后要对地图操作的代码,因为你请求发出之后可能还没有返回,你却离开了当前界面(界面没销毁),但之后请求返回了,就去执行对地图操作的代码,我想此时可能就把开始的那个地图给唤醒了,那么下个界面的地图就不能拖动了,只有回到原来的界面之后才能拖动)。解决方法:可以设置一个bool类型的属性,视图也就是界面将要显示的时候设置为YES,将要离开的时候设置为NO,如果有需要请求或怎样之后要操作地图的代码,可以加一个判断,为YES的时候执行,为NO的时候不执行。

你可能感兴趣的:(解决iOS百度地图只能缩放不能四周拖动问题)