2016-06-09 14 views
0

Ich bin ein Neuling bei Swift sowie Stackoverflow, und ich fragte mich, ob es eine Möglichkeit gibt, Daten von meinem Plist in detailCalloutAccessoryView auf die gleiche Weise wie ich importieren "Titel" und " Untertitel "in meinen Annotations Callouts? Auf diese Weise könnte ich vermeiden, meine eigene benutzerdefinierte Kartenanmerkung erstellen zu müssen und stattdessen die integrierten Funktionen von MapKit zu verwenden.Verwenden Sie detailCalloutAccessoryView als dritte Anmerkungseigenschaft

ich meine Variablen zu Titel und Untertitel wie dies nenne:

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 
    } 

Inzwischen Ich zeige nur den gleichen Wert in allen Anmerkungen für detailCalloutAccessoryView an die Stelle der Untertitel mit dem folgenden Stück Code:

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 

Bitte nicht meine Ignoranz Ärgert Sie lassen ...

Antwort

1

Sie müssen func mapView (mapView implementieren: MKMapView, viewForAnnotati auf Annotation: MKAnnotation) -> MKAnnotationView? Delegierte Methode. Dort können Sie detailCalloutAccessoryView anpassen.

Für eine detaillierte Erklärung siehe https://developer.apple.com/videos/play/wwdc2015/206/