我在xCode中显示地图注释时遇到问题。我能够在正确的坐标上显示一个图钉,但我似乎无法弄清楚如何显示带有标题和副标题的注释。
我是xCode和Swift的新手,所以如果我使用不正确的术语(或者如果这是一个非常简单的问题要解决的话),请道歉!)我已经在网上搜索了大约2个小时,尝试不同的变化我的代码,但我不能让它工作!
我正在开发一个简单的应用程序,用户可以浏览位置,然后将其固定在地图上。一旦人们从一个位置点击进入MapViewController,我就会尝试显示一个固定位置的地图和一个带标题和副标题的注释。除了标题和副标题外,我已经知道了所有内容,所以我很感激任何帮助!
override func viewDidLoad() {
super.viewDidLoad()
// Location pin
let initialLocation = CLLocation(latitude: location.latitude, longitude: location.longitude)
self.centerMapOnLocation(location: initialLocation)
// Annotation
let annotation = MKPointAnnotation()
annotation.title = self.location.name
annotation.subtitle = self.location.type
annotation.coordinate = CLLocationCoordinate2D(latitude: location.latitude, longitude: location.longitude)
mapView.addAnnotation(location)
}
// Map Center on Location
func centerMapOnLocation(location: CLLocation) {
let regionRadius: CLLocationDistance = 1000
let coordinateRegion = MKCoordinateRegionMakeWithDistance(location.coordinate,
regionRadius * 2.0, regionRadius * 2.0)
mapView.setRegion(coordinateRegion, animated: true)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
答案 0 :(得分:0)
确保您的班级符合MGLMapViewDelegate
并使用以下方法。
func mapView(_ mapView: MGLMapView, annotationCanShowCallout annotation: MGLAnnotation) -> Bool {
return true
}
答案 1 :(得分:0)
我想知道你是否应该将annotation
而不是location
添加到mapView中,即:
mapView.addAnnotation(annotation)
如果您想以编程方式显示标注,可以这样调用:
mapView.selectAnnotation(annotation, animated: true)