Показать выноску для раскрытия указателя для MKAnnotationView в Swift
Я могу показать значок раскрытия в моей аннотации карты, используя следующий код.
annotationView = MKAnnotationView(annotation: annotation, reuseIdentifier: annotationIdentifier)
annotationView?.rightCalloutAccessoryView = UIButton(type: .detailDisclosure)
Когда вы нажимаете значок раскрытия, он мигает, но больше ничего не происходит. Я попытался добавить обработчик кнопки, но это не кнопка, поэтому компилятор сказал нет. Нужно ли создавать целый распознаватель жестов, чтобы заставить его что-либо делать, или как бы я нажал на индикатор, чтобы показать информацию о местоположении?
2 ответа
Решение
Вам нужен этот метод делегата
func mapView(_ mapView: MKMapView,
annotationView view: MKAnnotationView,
calloutAccessoryControlTapped control: UIControl)
с
self.mapView.delegate = self
Попробуй это
let btn = UIButton(type: .detailDisclosure)
btn.addTarget(self, action: #selector(btnDisclosureAction(_:)), for: .touchUpInside)
annotationView.rightCalloutAccessoryView = btn
@objc func btnDisclosureAction(_ sender: UIButton) {
// you action
}