У меня есть карта с некоторыми булавками. Когда я нажимаю на PIN-код, пользовательский выноска отображается как UIView. Когда я нажимаю внутри calloutView, ничего не должно происходить. Если я нажимаю вне представления, пользовательский calloutView должен исчезнуть. Но я не знаю, как это реализовать, либо он исчезает при касаниях внутри и снаружи представления, либо вообще не исчезает.
мое удовольствие c обрабатывать касания:
func mapView(_ mapView: MKMapView, didDeselect view: MKAnnotationView) {
if view == customCallout {
return
} else {
customCallout?.removeFromSuperview()
}
}
В этом случае он удаляет на обоих касаниях пользовательский вынос. Здесь я создаю выноску:
func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {
if view.annotation is MKUserLocation {
return
}
//this creates the callout
let views = Bundle.main.loadNibNamed("CustomCalloutView", owner: nil, options: nil)
let calloutView = views?[0] as! CustomCalloutView
calloutView.delegate = self
customCallout = calloutView
}
, как я могу реализовать это, если я коснусь внутри настраиваемого вида выноски, он не исчезнет, но в случае что я нажимаю снаружи, оно исчезает?