【发布时间】:2019-10-22 23:40:51
【问题描述】:
我正在构建一个应用程序,我将在其中向地图添加多个注释。 作为第一次测试,我尝试了
let anotacao = MKPointAnnotation()
anotacao.coordinate.latitude = -23.623558
anotacao.coordinate.longitude = -46.581787
anotacao.title = "Annotation 1 Title"
anotacao.subtitle = "Annotation 1 Subtitle"
self.mapa.addAnnotation(anotacao)
anotacao.coordinate.latitude = -23.623658
anotacao.coordinate.longitude = -46.582787
anotacao.title = "Annotation 2 Title"
anotacao.subtitle = "Annotation 2 Subtitle"
self.mapa.addAnnotation(anotacao)
anotacao.coordinate.latitude = -23.623258
anotacao.coordinate.longitude = -46.591787
anotacao.title = "Annotation 3 Title"
anotacao.subtitle = "Annotation 3 Subtitle"
self.mapa.addAnnotation(anotacao)
我的预期结果是在地图上看到 3 个注释,但我只有最后一个。 我也尝试将这些代码行添加到
Timer.scheduledTimer(withTimeInterval: 8, repeats: true) { (timer) in
if index == 1 {
anotacao.coordinate.latitude = -23.623558
anotacao.coordinate.longitude = -46.581787
anotacao.title = "Annotation 1 Title"
anotacao.subtitle = "Annotation 1 Subtitle"
self.mapa.addAnnotation(anotacao)
index += 1
} else if index == 2 {
anotacao.coordinate.latitude = -23.623658
anotacao.coordinate.longitude = -46.582787
anotacao.title = "Annotation 2 Title"
anotacao.subtitle = "Annotation 2 Subtitle"
self.mapa.addAnnotation(anotacao)
index += 1
} else if index == 3 {
anotacao.coordinate.latitude = -23.623258
anotacao.coordinate.longitude = -46.591787
anotacao.title = "Annotation 3 Title"
anotacao.subtitle = "Annotation 3 Subtitle"
self.mapa.addAnnotation(anotacao)
}
尽管在实际项目中“不可用”,但上面的代码在地图上显示了 3 个注释。
搜索 Stackoverflow 我发现了另一种方法,即使用 addAnnotations,这正是我所需要的。 MapKit in Swift, Part 3 - MKPointAnnotation, addAnnotations 我的最终代码看起来与该线程中建议的完全一样。
由于我对 Swift 编程非常陌生,我在这篇文章中的主要观点是尝试理解为什么第一个代码不起作用。 addAnnotation 缺少什么?
我正在使用 Xcode 11.2、Swift4、IOS13 和 macOS Catalina
【问题讨论】:
标签: swift mapkit mapkitannotation