我有20个城市,并将其名称,纬度和经度存储在3个数组中。 这是我在ViewDidLoad()中的代码:
var annotations:Array<MKPointAnnotation>=Array(repeating: MKPointAnnotation(), count: cityName.count)
for i in 0 ..< annotations.count{
annotations[i].title=cityName[i]
annotations[i].coordinate.latitude=cityLatitude[i]
annotations[i].coordinate.longitude=cityLongitude[i]
mapView.addAnnotation(annotations[i])
}
但是,它仅在地图上显示一个图钉,这是数组中的最后一个城市。
我尝试添加以下代码,这些代码是我在Stack Overflow中找到的。
func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? {
print("viewForAnnotation \(annotation.title)")
if annotation is MKUserLocation {
return nil
}
let reuseID = "pin"
var pinView = mapView.dequeueReusableAnnotationView(withIdentifier: reuseID) as? MKPinAnnotationView
if(pinView == nil) {
pinView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: reuseID)
pinView!.canShowCallout = true
pinView!.animatesDrop = true
}
return pinView
}
,然后在文件中添加MKMapViewDelegate。 但是结果仍然是地图上的一针。
如何将所有图钉添加到地图?谢谢