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

当用户开始在 Swift 中的路线上移动时动态更改 MapView 折线样式

如何解决当用户开始在 Swift 中的路线上移动时动态更改 MapView 折线样式

我正在使用 Apple MapView 在我的应用中显示导航。借助以下代码,我可以将 polyline 的样式更改为从取件位置到目标位置的虚线样式:

func mapView(_ mapView: MKMapView,rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
    let renderer = MKpolylineRenderer(overlay: overlay)
    renderer.strokeColor = polyLINE_COLOR
    renderer.linewidth = 3
    renderer.lineDashPattern =[0,6]
    return renderer
}

用户向目标位置移动时,我想将虚线图案多段线更改为直线。假设User正在向Destination移动,那么PickUp to User polyline应该是直线,User to Destination应该是Dash线。

解决方法

我所做的是保留对创建的 MKPolylineRenderer 对象的引用。

然后,如果发生某些事情(例如移动的用户),我会更新渲染器,例如新的 lineDashPattern。

然后我打电话给renderer.setNeedsDisplay()

就是这样。

记住对主队列中的渲染器对象和 renderer.setNeedsDisplay() 进行所有更新。

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