您好我正在使用此应用程序,因此我可以按下PinView中的按钮,它将加载弹出视图。我很困惑如何使这个工作,因为我认为我需要把它作为一个IBAction,但我不认为我可以这样做,因为它是从main.storyboard隐藏。
extension ViewController : MKMapViewDelegate {
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
pinView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: reuseId)
pinView?.pinTintColor = UIColor(red: 52/255.0, green: 73/255.0, blue: 94/255.0, alpha: 1.0)
pinView?.canShowCallout = true
let removeButton = UIButton(type: .Custom)
removeButton.frame = CGRect(x: 0, y: 0, width: 40, height: 40)
removeButton.setImage(UIImage(named: "RadiusSettings")!, forState: .Normal)
pinView?.leftCalloutAccessoryView = removeButton
return pinView
}
}
任何帮助将不胜感激,谢谢
答案 0 :(得分:0)
在地图视图的delegate
中,实施calloutAccessoryControlTapped
。
答案 1 :(得分:0)
我不认为您可以轻松地在注释视图中添加按钮,但正如Matt在回答中提到的那样,您可以在用户点按时向标注视图添加按钮注释视图。
用户需要点击显示标注视图的注释视图(通常是一个图钉),如果您添加了一个按钮,则包括一个按钮。然后,用户点击标注上的按钮,调用calloutAccessoryControlTapped
方法。