swift – 自定义MKAnnotation在坐标设置时不移动

swift – 自定义MKAnnotation在坐标设置时不移动,第1张

概述我已经设置自定义MKAnnotation class Location: NSObject, MKAnnotation { var id: Int var title: String? var name: String var coordinate: CLLocationCoordinate2D { didSet{ did 我已经设置了自定义MKAnnotation
class Location: NSObject,MKAnnotation {    var ID: Int    var Title: String?    var name: String    var coordinate: CLLocationCoordinate2D {        dIDSet{            dIDChangeValueForKey("coordinate")        }    }

当我设置坐标时,它不会移动地图上的图钉.我添加了’dIDSet’和关键字坐标,因为我发现有人说会强制它更新.但没什么,它不动.我已经验证了lat / long已经改变并且是正确的,引脚只是没有移动.标题更新并显示更改.

我必须假设它,因为这是一个自定义注释.任何帮助?

如果您要手动发布这些更改事件,则还必须在willSet中调用 willChangeValue(forKey:).在Swift 4中:
var coordinate: CLLocationCoordinate2D {    willSet {        willChangeValue(for: \.coordinate)    }    dIDSet {        dIDChangeValue(for: \.coordinate)    }}

或者在Swift 3中:

var coordinate: CLLocationCoordinate2D {    willSet {        willChangeValue(forKey: #keyPath(coordinate))      }    dIDSet {        dIDChangeValue(forKey: #keyPath(coordinate))    }}

或者,更容易,只需将其指定为动态属性,此通知内容就是为您完成的.

@objc dynamic var coordinate: CLLocationCoordinate2D

对于Swift 2版本,请参阅previous rendition of this answer.

总结

以上是内存溢出为你收集整理的swift – 自定义MKAnnotation在坐标设置时不移动全部内容,希望文章能够帮你解决swift – 自定义MKAnnotation在坐标设置时不移动所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1028664.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-23
下一篇2022-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存