如何在PinView中创建UIButton打开弹出视图?

时间:2016-05-22 17:36:04

标签: ios uibutton

您好我正在使用此应用程序,因此我可以按下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
    }
}

This is my main.storyboard

任何帮助将不胜感激,谢谢

2 个答案:

答案 0 :(得分:0)

在地图视图的delegate中,实施calloutAccessoryControlTapped

答案 1 :(得分:0)

我不认为您可以轻松地在注释视图中添加按钮,但正如Matt在回答中提到的那样,您可以在用户点按时向标注视图添加按钮注释视图。

用户需要点击显示标注视图的注释视图(通常是一个图钉),如果您添加了一个按钮,则包括一个按钮。然后,用户点击标注上的按钮,调用calloutAccessoryControlTapped方法。