首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS 11 MKAnnotationView prepareForReuse在Map视图中取消引脚视图

iOS 11 MKAnnotationView prepareForReuse在Map视图中取消引脚视图
EN

Stack Overflow用户
提问于 2017-12-06 22:04:00
回答 2查看 277关注 0票数 0

我想要做的是,当我取消选择一个引脚时,引脚视图将它的UI更改回未选定的状态(例如更改引脚的背景颜色)。

代码语言:javascript
复制
- (void)mapView:(MKMapView *)mapView didDeselectAnnotationView:(MKAnnotationView *)view
{
   //do something;

   XLMapItemAnnotation* mapItem = [self annotationForView:view];
   [view prepareForReuse];
}

通过使用这段代码,当我在iOS 11中运行应用程序时,如果我取消选择一个引脚,这个引脚就会完全消失在地图视图中。如果我去掉prepareForReuse,一切都会好起来的。还有一些代码,如果我在iOS 10中运行这个应用程序,一切都很好,没有销钉会消失。sbd能给我一个提示吗,有什么问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-07 04:28:49

您不应该自己调用-prepareForReuse,它的目的是让MapKit自己调用自己。

票数 0
EN

Stack Overflow用户

发布于 2017-12-08 03:54:17

正如@Tim所说,-prepareForReuse是为MKAnnotationView的重用机制设计的,您不应该自己调用它。

在iOS 11中,MapKit为MKAnnotationView引入了聚类算法(但经过一些尝试,我发现它有时会导致奇怪的行为)。在本例中,默认情况下MKAnnotationView.isHidden设置为true。因此,在调用-prepareForReuse之后,MKAnnotationView是隐藏的。

如果要更改引脚的颜色,只需直接更改pinTintColor属性,或根据需要使用函数重置所有属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47684198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档