我希望能够使用MKPointAnnotation
. 具体来说,我想为每个 pin 存储一些 id 并在calloutAccesoryControlTapped
.
问问题
1016 次
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 回答