IOS|IOS 高德地图 标注无法选中的一种情况
贴一段代码
if (!_bCenter) {
[self.aMapView setCenterCoordinate:marker.coordinate];
_bCenter = YES;
}
if (bshow) {
[self.aMapView selectAnnotation:marker animated:YES];
}
【IOS|IOS 高德地图 标注无法选中的一种情况】在执行添加annotation之后立刻执行了上述代码,先设置了地图中心位置,然后选中该annotation,结果annotation经常未被选中,我研究了一下高德地图annotationView的加载机制,发现在地图刚移入时才加载之前添加的annotation,此时立刻设置选中该annotation会出现不响应的情况。所以改了下代码写法,问题解决,代码如下:
if (!_bCenter) {
[self.aMapView setCenterCoordinate:marker.coordinate];
_bCenter = YES;
}/**
延时100毫秒 设置选中当前annotation 由于高德地图annotation加载机制的问题,
在地图刚移入时才加载之前添加的annotation,此时立刻设置选中该annotation会
出现不响应的情况(高德地图BUG)此处采用GCD延时方式执行选中annotation
操作。
*/
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(100 * NSEC_PER_MSEC)), dispatch_get_main_queue(), ^{
if (bshow) {
[self.aMapView selectAnnotation:marker animated:YES];
}
});
推荐阅读
- 2020-04-07vue中Axios的封装和API接口的管理
- iOS中的Block
- 拿着旧地图,找不到新大陆
- 记录iOS生成分享图片的一些问题,根据UIView生成固定尺寸的分享图片
- 2019-08-29|2019-08-29 iOS13适配那点事
- Hacking|Hacking with iOS: SwiftUI Edition - SnowSeeker 项目(一)
- iOS面试题--基础
- 地图|地图 旅行 菜系
- 接口|axios接口报错-参数类型错误解决
- iOS|iOS 笔记之_时间戳 + DES 加密