Показать выноску для раскрытия указателя для 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
    }
Другие вопросы по тегам