#ios #swift3 #mapkit
#iOS #swift3 #mapkit
Вопрос:
Я использую Apple MapView для отображения навигации в моем приложении. Я могу изменить стиль полилинии на пунктирный узор из места получения в место назначения с помощью следующего кода:
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
}
Я хочу изменить полилинию штрихового рисунка на прямую линию по мере продвижения пользователя к месту назначения. Предположим, что пользователь движется к месту назначения, тогда полилиния отправки к пользователю должна быть прямой линией, а пользователь к месту назначения должен быть пунктирной линией.
Ответ №1:
Что я делаю, так это сохраняю ссылку на созданный MKPolylineRenderer
объект.
Затем, если что-то происходит (например, перемещение пользователя), я обновляю средство визуализации, например, новый lineDashPattern.
Тогда я звоню renderer.setNeedsDisplay()
Вот и все.
Не забудьте выполнить все обновления для объекта визуализации и renderer.setNeedsDisplay()
в основной очереди.