微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

你如何改变 MKMarkerAnnotationViews 的大小?

如何解决你如何改变 MKMarkerAnnotationViews 的大小?

我在我的地图上使用 MKMarkerAnnotations 并希望将它们稍微大一点,因为认大小使我使用的任何自定义图标都难以看到。

一个问题的公认答案表明,唯一的方法是通过继承 MKAnnotationView 从头开始​​构建您自己的 MKMarkerAnnotationView: Change MKMarkerAnnotationView size

真的可以这样吗?如果是这样,这将是一个拖累,因为我喜欢 MarkerAnnotations 的所有其他“现成”功能。似乎很奇怪,没有办法只覆盖与大小有关的属性。考虑到这一点,我尝试将 MKMarkerAnnotation 子类化并使用以下内容进行处理:

override var annotation: MKAnnotation? {
    willSet {
        frame.size = CGSize(width: 50.0,height: 50.0)
        frame = CGRect(x: 0.0,y: 0.0,width: 50.0,height: 50.0)
        bounds.size = CGSize(width: 50.0,height: 50.0)
        bounds = CGRect(x: 0.0,height: 50.0)
    }
}

并在 mapView 委托中尝试了相同的方法

func mapView(_ mapView: MKMapView,viewFor annotation: MKAnnotation) -> MKAnnotationView? {
    let poiView = POIView(annotation: annotation,reuseIdentifier: "POI")
        poiView.bounds.size = CGSize(width: 50.0,height: 50.0)
        poiView.frame = CGRect(x: 0.0,height: 50.0)
        poiView.bounds.size = CGSize(width: 50.0,height: 50.0)
        poiView.bounds = CGRect(x: 0.0,height: 50.0)
}

但是这些都没有任何效果。有没有办法改变大小而不必从头开始重建我自己的 MKMarkerAnnotation?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。