Я назначил mapView.delegate
контроллером представления и реализовал заглушки протокола для MKMapViewDelegate
.
Просмотр загружен
let mapFrame = LayoutManager.between(elementAbove: roundName, elementBelow: selectTeamButton, width: view.frame.width, topPadding: 2 * .MARGINAL_PADDING, bottomPadding: .PADDING)
mapView = MKMapView(frame: mapFrame)
mapView.delegate = self
mapView.showsUserLocation = true
mapView.setUserTrackingMode(.follow, animated: true)
view.addSubview(mapView)var points: [CLLocationCoordinate2D] = [CLLocationCoordinate2D]()
for annotation in boundaries {
points.append(annotation.coordinate)
}
borderDrawing = MKPolyline(coordinates: &points, count: points.count)
mapView.addOverlay(borderDrawing, level: .aboveLabels)
Однако в моем методе делегата mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay)
я не могу получить какие-либо события для запуска.
Я проверил статус делегата - я все еще могу получить ожидаемое поведение от mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation)
, изменив цвет булавки.
private func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
debugPrint("called rendererfor")
if overlay is MKPolyline {
let polylineRenderer = MKPolylineRenderer(overlay: overlay)
polylineRenderer.strokeColor = rgba(0, 88, 230, 0.7)
polylineRenderer.lineWidth = 5
return polylineRenderer
} else {
return MKOverlayRenderer(overlay: overlay)
}
}
К сожалению, от этого я не получаю никакого поведения,Строка debugPrint
даже не выполнена.Я ломаю голову над тем, почему метод делегата не будет работать должным образом.