0

我希望能够使用MKPointAnnotation. 具体来说,我想为每个 pin 存储一些 id 并在calloutAccesoryControlTapped.

4

2 回答 2

3

您必须使用属性子类化 MKPointAnnotation 来存储此自定义值(我将其命名为标签)

import UIKit
import MapKit
class CustomPointAnnotation: MKPointAnnotation {
    var tag: Int!
}

创建引脚:

let annotation = CustomPointAnnotation()
annotation.coordinate = CLLocationCoordinate2D(latitude: CLLocationDegrees(latitude), longitude: CLLocationDegrees(longitude))
            annotation.title = [insert name]
            annotation.tag = [insert tag]
            self.mapView.addAnnotation(annotation)

在您的 mapView 委托的 viewForAnnotation 中,检查 dequeableAnnotation 之后,您执行以下操作:

  if (annotation is CustomPointAnnotation) {
       pinView?.tag = (annotation as! CustomPointAnnotation).tag
  }
于 2015-12-14T01:31:23.313 回答
1

对 Marcos Griselli 的回答进行了小幅编辑。需要强制转换 pinView 才能访问自定义标签。

if (annotation is CustomPointAnnotation) {
    (pinView?.annotation as! CustomPointAnnotation).tag = (annotation as! CustomPointAnnotation).tag
}
于 2016-03-19T00:05:02.967 回答