gpt4 book ai didi

swift - 如何识别何时按下注释

转载 作者:搜寻专家 更新时间:2023-11-01 05:32:55 24 4
gpt4 key购买 nike

如您所见,我在这里创建了一个新注释

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)
}

最佳答案

如我所见,您已经创建了一个继承 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!)
}

}

给你。

如果您有任何问题,请给我留言。

关于swift - 如何识别何时按下注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51591670/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com