【问题标题】:MKAnnotation always red post refreshMKAnnotation 总是红色后刷新
【发布时间】:2015-09-21 21:51:20
【问题描述】:

我有一个 MapViewController 类,我设置了

mapView.delegate = self

在 viewDidLoad 中。当我第一次加载地图时,注释会正确呈现。但是,在刷新后(例如,在我点击标注中的按钮后 - 说“删除”),所有其他图钉都会丢失它们的图像并呈现为“红色”。

在我的刷新方法中,我删除了所有注释:

mapView.removeAnnotations(mapView.annotations)

然后以与我在初始加载时创建注释相同的方式重新创建注释。

直到今天,当我升级到 Swift 2.0 时,这段代码都可以正常工作。直到现在我只是幸运还是我错过了一段新代码?

我什至尝试强制引脚默认为绿色。但无论我做什么(设置图像或更改颜色),刷新后,所有引脚都是红色的 :(

【问题讨论】:

    标签: mkmapview mapkit swift2 mkannotation mkmapviewdelegate


    【解决方案1】:

    在以下位置找到错误:

    func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? {
    

    在一天中的某个时候,我以某种方式改变了以下情况:

    mapView.dequeueReusableAnnotationViewWithIdentifier(identifier) 
    

    没有返回 nil 并将 Annotation 设置为 MKPinAnnotationView。刷新后,我将同一个对象出队。渲染后默认为红色。

    解决方案是只处理“MKAnnotationView”对象(无论是我自己的子类还是默认)。

    【讨论】:

      猜你喜欢
      • 2021-09-30
      • 2021-04-19
      • 2020-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-27
      • 2016-06-16
      相关资源
      最近更新 更多