如何识别何时按下注释
How to identify when a annotation is pressed which one it is
如您所见,我在这里创建了一个新注释
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)
现在当用户点击注释时,我想要运行一个方法。但我的问题是:
How do I know which annotation they clicked on?
然后问题是我正在使用一个循环来创建多个注释,所以我无法设置标签,因为它将成为最后设置的标签。
然后这里我想打印一个标签,可以为每个注释设置不同的标签
func mapView(mapView: MKMapView, didSelectAnnotationView view: MKAnnotationView) {
print(view.tag)
}
如我所见,您已经创建了一个 class 子 class 一个 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!)
}
}
好了。
如果您有任何问题,请给我留言。
如您所见,我在这里创建了一个新注释
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)
现在当用户点击注释时,我想要运行一个方法。但我的问题是:
How do I know which annotation they clicked on?
然后问题是我正在使用一个循环来创建多个注释,所以我无法设置标签,因为它将成为最后设置的标签。
然后这里我想打印一个标签,可以为每个注释设置不同的标签
func mapView(mapView: MKMapView, didSelectAnnotationView view: MKAnnotationView) {
print(view.tag)
}
如我所见,您已经创建了一个 class 子 class 一个 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!)
}
}
好了。
如果您有任何问题,请给我留言。