问题描述
我正在使用 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()
进行所有更新。