【发布时间】:2014-07-05 03:33:31
【问题描述】:
我有一个这样创建的自定义 MKPinAnnotationView:
func mapView(mapView: MKMapView!, viewForAnnotation annotation: MKAnnotation!) -> MKAnnotationView! {
if annotation is MKUserLocation {
//return nil so map view draws "blue dot" for standard user location
return nil
}
let reuseId = "pin"
var pinView = mapView.dequeueReusableAnnotationViewWithIdentifier(reuseId) as? MKPinAnnotationView
if pinView == nil {
pinView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: reuseId)
pinView!.canShowCallout = false
pinView!.animatesDrop = true
pinView!.pinColor = .Red
pinView!.draggable = true;
} else {
pinView!.annotation = annotation
}
return pinView
}
然后我稍后用这样的按钮向它添加一个子视图:
func mapView(mapView: MKMapView!, didSelectAnnotationView view: MKAnnotationView!) {
view.addSubview(confirm)
}
问题是子视图内的按钮根本没有响应。可能是什么原因造成的?我已经尝试过启用 userInteraction。 谢谢
【问题讨论】:
-
您不想使用内置的 rightCalloutAccessoryView 或 leftCalloutAccessoryView 属性?如果将它们设置为 UIButton,点击它们将调用 calloutAccessoryControlTapped 委托方法。
标签: ios xcode mkmapview swift mkannotationview