加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 05:22:11 所属栏目:百科 来源:网络整理
导读:我已经设置了自定义MKAnnotation class Location: NSObject,MKAnnotation { var id: Int var title: String? var name: String var coordinate: CLLocationCoordinate2D { didSet{ didChangeValueForKey("coordinate") } } 当我设置坐标时,它不会移动地图上
我已经设置了自定义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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读