Используйте detailCalloutAccessoryView в качестве третьего свойства аннотации
Я новичок в Swift, а также в Stackru, и мне было интересно, есть ли способ импортировать данные из моего plist в detailCalloutAccesoryView таким же образом, как я импортирую в "title" и "subtitle" в своих выносках аннотации карты? Таким образом, я мог бы избежать создания собственной пользовательской аннотации карты и использовать встроенные функции MapKit.
Я называю мои переменные для заголовка и субтитров следующим образом:
var myData: NSArray?
if let path = NSBundle.mainBundle().pathForResource("myData", ofType: "plist") {
myData = NSArray(contentsOfFile: path)
}
if let items = myData {
for item in items {
let lat = item.valueForKey("Latitude") as! Double
let long = item.valueForKey("Longitude") as! Double
let myAnnotation = Mydata(value1: "Value1", value2: "Value2", value3: "Value3", latitude: lat, longitude: long)
// Define "Value1 to be shown as title in Callout
myAnnotation = item.valueForKey("Value1") as? String
// Define "Value2 to be shown as subtitle in Callout
myAnnotation.subtitle = item.valueForKey("Value2") as? String
annotations.append(myAnnotation)
}
}
return annotations
}
В настоящее время я просто показываю одно и то же значение во всех аннотациях для detailCalloutAccessoryView вместо субтитров, используя следующий фрагмент кода:
let detailAccessory = UILabel(frame: CGRectMake(0,0,50,30))
detailAccessory.text = "Value3" // Obviously, shows constant value for all annotations
detailAccessory.font = UIFont(name: "Verdana", size: 10)
pinView?.detailCalloutAccessoryView = detailAccessory
Пожалуйста, не позволяйте моему невежеству раздражать вас...
1 ответ
Вам нужно будет реализовать func mapView(mapView: MKMapView, аннотация viewForAnnotation: MKAnnotation) -> MKAnnotationView? метод делегата. Там вы можете настроить detailCalloutAccessoryView.
Для подробного объяснения обратитесь к https://developer.apple.com/videos/play/wwdc2015/206/