如您所见,我已经在此处创建了新注释
var pin = CustomPointAnnotation()
pin.coordinate = CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
pin.title = "Bus Stop"
pin.subtitle = "City Stand D"
pin.imageName = "pin"
mapView.addAnnotation(pin)
现在,当用户单击注释时,我想运行一个方法。但是我的问题是:
我怎么知道他们点击了哪个注释?
然后的问题是,我正在使用循环创建多个注释,因此无法设置标签,因为它将成为最后设置的标签。
然后我要在此处打印一个标签,可以为每个注释设置不同的标签
func mapView(mapView: MKMapView, didSelectAnnotationView view: MKAnnotationView) {
print(view.tag)
}
答案 0 :(得分:0)
如我所见,您已经创建了一个将MKPointAnnotation
子类化的类。
这很简单,您只需创建一个具有名称和类型的变量即可。
class CustomPointAnnotation: MKPointAnnotation {
var tag: Int!
}
然后在代码中设置变量。
var pin = CustomPointAnnotation()
pin.coordinate = CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
pin.title = "Bus Stop"
pin.subtitle = "City Stand D"
pin.imageName = "pin"
pin.tag = index
mapView.addAnnotation(pin)
然后在单击注释时访问变量。只需在这里做。
func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {
if let annotation = view.annotation as? CustomPointAnnotation {
print(annotation.tag!)
}
}
你去了。
如果有任何问题,请给我评论。