使用自定义的大头针的时候,在跳转至详情界面时,再次返回时会出现自定义的大头针无效被替换成了系统自带的大头针 ?
原因还是自己不小心在push 界面消失的时候将代理mapview 的代理给释放了所以默认加的都是系统的大头针了
关于高德地图的一些优化策略
出现的问题:地图界面手势的拖拽和放大缩小不够灵敏,随着运行的时间和多次跳转界面会变得越来越卡,使用profile发现高德也会内存泄漏,但这不是最根本的原因,因为即使知道也是没办法修改的.憋屈耐何让我优化,何苦为难一个小菜鸡.
开始思考是想可能因为图片的原因以下是经历过的思路
1.尝试屏蔽画图片自定义的大头针,发现情况并未好转.因此否认了
2.高德地图本身的一次加载就是很费内存的,尤其适用在xcode自带debug模式看到多次跳转时内存会一直在120%-150%以上,抽取过后只有第一次会比较高,但以后基本稳定在70%-90%,也不会超过100%.但是仍然不能解决拖拽卡顿和不流畅的情况.
3.既不是大量大头针的添加也不是未单例的地图,想到难道因为导航?持续定位去刷新视图的原因? 因为每隔一段时间会将当前的位置和资源做一次比对,但是经过测试,删掉这些操作后还是卡顿,一一排查到,去掉自带的律动当前定位图标即那个小圆点,设置其不跟随不实时刷新,居然不是那么卡顿了.滑动也很流畅了.当然根本原因可能不是这个,毕竟其它app中出现这个拖拽也不是很卡(mark:这个有待验证).
4.考虑定位是做成单例的全局,因此在全局中去做了定位的代理管理,使用地图的界面只负责接收代理传出的数据做一些界面的更新和操作,居然真的没那么卡了.
5.当然这样居然还不够,图上许多大头针是支持点击手势和地图上的拖拽和放大缩小手势.然后可能因为手势冲突会让拖拽放大等手势丢失? 所以以为卡了? 然后在单例地图视图中实现shouldrecievetouch,设置不处理点击的手势额到此 是真的就很流畅了.