每个答案,我发现主题 about 说我只需要在右侧添加一个 UIButtonType.DetailDisclosure 按钮,然后会通知此方法:
func mapView(mapView: MKMapView!, annotationView: MKAnnotationView, calloutAccessoryControlTapped control: UIControl)
无论我单击按钮还是标注本身,都会通知此方法。就我而言,如果我单击按钮,则会通知该方法,但如果单击标注则不会。
这是我用来添加按钮的代码。如您所见,我添加了一个自定义图像,但这并不重要。它也不适用于普通按钮。
let rightImage = UIImage(named: "rightIcon")
let rightButton = UIButton.buttonWithType(UIButtonType.DetailDisclosure) as UIButton
rightButton.setImage(rightImage, forState: UIControlState.Normal)
rightButton.frame = CGRectMake(0, 0, 16, 16)
pinView!.rightCalloutAccessoryView = rightButton