ios - 如何选择注释标题?

标签 ios swift mapkit

如何在 map 中点击或点击注释标题。例如我有代码:

@IBOutlet var Map: MKMapView!
override func viewDidLoad() {
    super.viewDidLoad()
    Map.delegate = self
    let location = CLLocationCoordinate2DMake(lat!, lon!)
    let span = MKCoordinateSpanMake(0.1, 0.1)
    let region = MKCoordinateRegion(center: location, span: span)
    Map.setRegion(region, animated: true)
    let annotation = MKPointAnnotation()
    annotation.coordinate = location
    annotation.title = "Title"
    Map.addAnnotation(annotation)

}

我尝试使用 UITapGestureRecognizermapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) 但它不起作用。也许有人有什么想法

最佳答案

实现委托(delegate)方法。

func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
    if annotation is MKUserLocation {
        return nil
    }

    let reuseId = "Pin"
    var pinView = mapView.dequeueReusableAnnotationView(withIdentifier: reuseId)
    if pinView == nil {
        pinView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: reuseId)
        pinView?.canShowCallout = true

        let rightButton: AnyObject! = UIButton(type: UIButtonType.detailDisclosure)
        pinView?.rightCalloutAccessoryView = rightButton as? UIView
    }
    else {
        pinView?.annotation = annotation
    }

    return pinView
}

func mapView(_ mapView: MKMapView, annotationView view: MKAnnotationView, calloutAccessoryControlTapped control: UIControl) {
    print(#function)
    if control == view.rightCalloutAccessoryView {
        // Do something
    }
}

关于ios - 如何选择注释标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46616775/

相关文章:

ios - 适用于 iOS 的离线 MapKit 解决方案

ios - 我可以更改 UITextView 和 UITextField 上方 "Copy"气泡的颜色吗?

objective-c - Objc : Class X is implemented in both Y and Z . 将使用两者之一。哪个是未定义的

android - Firebase 定期更新数据库

ios - 快速获取用户的联系人电话号码

ios - 如何动态添加新单元格到UICollectionView?

swift - 从屏幕中心获取位置 Swift MapKit

ios - 如何在 MKMapView 上绘制 UIBezierPath 覆盖?

ios - UITableViewCell 从 1 计数到 50

ios - 我无法将按钮连接到@IBAction