我很难让我的注释的副标题更新,我在主线程上调用它并确保结果是正确的。
任何人都可以看到为什么它不会更新?
let stopAnnotation: UUStopAnnotation = view.annotation as! UUStopAnnotation
// Else get the stop estimation
webService?.getStopEstimation(routeId: stopAnnotation.routeId, stopId: stopAnnotation.stopId, completion: { (result) in
print(result)
DispatchQueue.main.async(execute: {
stopAnnotation.subtitle = result
})
})
答案 0 :(得分:1)
您无法在地图中更改注释。删除此注释并将其替换为具有相同坐标但新副标题的注释。
答案 1 :(得分:0)
您是否尝试过强制地图视图重绘?
view.setNeedsDisplay()
答案 2 :(得分:0)
我通过添加以下内容修复了它:
webService?.getStopEstimation(routeId: stopAnnotation.routeId, stopId: stopAnnotation.stopId, completion: { (result) in
print(result)
DispatchQueue.main.async(execute: {
mapView.removeAnnotation(view.annotation!)
stopAnnotation.subtitle = result
mapView.addAnnotation(stopAnnotation)
mapView.selectAnnotation(stopAnnotation, animated: true)
})
})