Проблема с этим вопросом состоит в том, что код в вопросе не точно отражает реальный код. К счастью, вы также разместили реальный код:
https://github.com/kcapretta/RadiusSocialNetworkingApp/blob/master/RadiusMap/RadiusLocationViewController
В этой версии кода, мы ясно видим, что ваш метод делегата
func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay)
-> MKOverlayRenderer {
похоронен внутри вашего viewDidLoad
. Таким образом, это чисто локальная функция, невидимая для всего остального кода. Вам нужно получить его оттуда, чтобы это был метод контроллера представления.
Чтобы продемонстрировать, вот небольшой вариант вашего кода, оставляя ненужные вещи о регионе мониторинг и текущее местоположение пользователя и концентрация только на аннотации и наложении круга:
class ViewController: UIViewController, MKMapViewDelegate {
@IBOutlet var mapView : MKMapView!
let coordinate = CLLocationCoordinate2DMake(33.97823607957177, -118.43823725357653)
// this is a _method_
override func viewDidLoad() {
super.viewDidLoad()
mapView.delegate = self
mapView.region = MKCoordinateRegion(center: coordinate, latitudinalMeters: 1000, longitudinalMeters: 1000)
let title = "Marina Bar Hop"
let restaurantAnnotation = MKPointAnnotation()
restaurantAnnotation.coordinate = coordinate
restaurantAnnotation.title = title
mapView.addAnnotation(restaurantAnnotation)
let regionRadius = 300.0
let circle = MKCircle(center: coordinate, radius: regionRadius)
mapView.addOverlay(circle)
}
// this is a _method_
func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
let circleRenderer = MKCircleRenderer(overlay: overlay)
circleRenderer.strokeColor = UIColor.red
circleRenderer.lineWidth = 1.0
return circleRenderer
}
}
Результат:
![enter image description here](https://i.stack.imgur.com/3zUmk.png)