今天中要使用高德定位的功能,遇到的一点小问题做下记录, 功能简述:需要在地图上展示自定义的一组标注点,标注点样式需要自定义,并且标注点可选,并且改变选择标注点的样式
1部分代码:对于自定义标注点样式高德提供了方法,自定义样式的思路,我是对MAAnnotation的 imageView 的样式进行修改 注意: 这里是 readonly,我开始是新初始化了一个 imageView 再赋给annotationView?.imageView走了弯路,这里直接对annotationView?.imageView样式进行修改就 OK 了,因为要对选中的某个标注点坐处理,而MAAnnotation没有方便做标识的属性 我的思路:将标注点数组都存在数组里 (抱歉图截不全) 然后在上面自定义标注点的方法里判断当前修改的标注点是否是我选中的标注点,对数组遍历 2,关于定位,开启定位后会被提示:“要在iOS 11及以上版本使用后台定位服务, 需要实现mapViewRequireLocationAuth: 代理方法 ” 字面意思,在使用定位服务前实现代理方法,个人建议在didFinishLaunchingWithOptions中和请求定位权限的方法一起写了 AMapLocationManager().delegate = self func amapLocationManager(_ manager: AMapLocationManager!, doRequireLocationAuth locationManager: CLLocationManager!) { locationManager.requestAlwaysAuthorization() }