不要轻易设置mapView.showsUserLocation = true

55 阅读1分钟

Mapkit不要轻易设置mapView.showsUserLocation = true

通过Xcode Energe Impact面板可以看到各个部分对电量消耗的占比,下图是mapView.showsUserLocation = falsemapView.showsUserLocation = true的电量消耗的前后对比:

WeChat2d72f6d3d9ade5e232b03db9d5d3911e.jpg 可以看到,Location部分占用很高,对电量的影响很大

为什么

当设置 mapView.showsUserLocation = true时,地图会自动创建一个定位管理类CLLocationManager,会持续更新用户当前位置

如何优化

如果仅仅想显示用户当前位置,又不需要持续跟踪,无需开启这个方法,可以用自定义annotationView显示当前用户位置来优化性能