MKPointAnnotation() - выноска для передачи некоторой информации

Аннотация отображается на моей карте, но я не могу добавить выноску. Я планирую использовать выноску, чтобы изменить label.text на титул аннотации в том же ViewController.

Я попробовал это, например, но чего мне не хватает, чтобы заставить его работать.

Я надеюсь, что кто-то может помочь мне, так как эта проблема, я мог решить все с помощью stackru или youtube, но я пытаюсь часами:(

import UIKit
import MapKit

class ViewController: UIViewController, MKMapViewDelegate {

    @IBOutlet weak var map: MKMapView!

    override func viewDidLoad() {

        map.delegate = self

        let cor : CLLocationCoordinate2D = CLLocationCoordinate2D(latitude: 50, longitude: 10)
        let region = MKCoordinateRegionMakeWithDistance(cor, 5000, 5000)
        self.map.setRegion(region, animated: true)

        let annotation = MKPointAnnotation()
        annotation.coordinate.latitude = 50
        annotation.title = "test"
        annotation.subtitle = "hdhsadsa"
        annotation.coordinate.longitude = 10

        map.addAnnotation(annotation)
    }

    func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {

        if annotation is MKUserLocation { return nil }

        var annotationView = mapView.dequeueReusableAnnotationView(withIdentifier: "identifier") as? MKPinAnnotationView

        if annotationView == nil {
            annotationView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: "identifier")
            annotationView?.canShowCallout = true
            annotationView?.rightCalloutAccessoryView = UIButton(type: .infoLight)
        } else {
            annotationView?.annotation = annotation
        }

        return annotationView
    }
}

1 ответ

Функция изменена на viewFor для аннотации - редактируется код вверху

Другие вопросы по тегам