Swift - Custom MKAnnotationView, set-label-Titel

Ich versuche, passen Sie die MKAnnotationView für meine mapView Legende Blasen. Ich bin gut mit der Einstellung der annotation Titel, wenn die annotation erstellt wurde, und auch die Anpassung der MKAnnotationView zum hinzufügen von Etiketten oder Bilder.e.t.c (in der viewForAnnotation Delegierte), aber wie ändere ich das label erstellt, in der viewForAnnotation delegieren, so dass der Titel anders ist es für jeden pin?

Die andere Frage, die ich habe ist, dass wenn ich nicht fügen Sie einen Titel oder Untertitel zu der Anmerkung, wenn es erstellt wird, in der viewDidLoad-Methode, aber ich immer noch versuchen, und erstellen Sie eine durch das verlassen self.map.addAnnotation(annotation), wenn ich die app ausführen und Tippen Sie die pin nicht callout-Sprechblase wird angezeigt.

Am Ende hätte ich gerne ganz individuelle callout-Blasen, mit individuellen labels auf Sie für jeden pin. Also, was ich wirklich ned wissen, wie Sie auf die viewForAnnotation delegieren, wenn die annotation erstellt wird, um Eigenschaften zu ändern, es für jeden pin.

override func viewDidLoad() {
        super.viewDidLoad()

        var countries: [String] = ["Germany","Germany","Poland","Denmark"]
        var practiceRoute: [CLLocationCoordinate2D] = [CLLocationCoordinate2DMake(50, 10),CLLocationCoordinate2DMake(52, 9),CLLocationCoordinate2DMake(53, 20),CLLocationCoordinate2DMake(56, 14)]

        for vari=0; i<practiceRoute.count; i++ {

            var annotation = MKPointAnnotation
            annotation.title = countries[i]
            annotation.coordinate = practiceRoute[i]
            self.map.addAnnotation(annotation)

        }

}

func mapView(mapView: MKMapView!, viewForAnnotation annotation: MKAnnotation!) -> MKAnnotationView! {

    if annotation is MKUserLocation {
        return nil
    }

    let reuseId = "pin"
    var pinView = mapView.dequeueReusableAnnotationViewWithIdentifier(reuseId) as? MKPinAnnotationView

    if(pinView==nil){

        pinView=MKPinAnnotationView(annotation: annotation, reuseIdentifier: reuseId)
        pinView!.canShowCallout = true

        let base = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 50))
        base.backgroundColor = UIColor.lightGrayColor()

        let label1 = UILabel(frame: CGRect(x: 30, y: 10, width: 60, height: 15))
        label1.textColor = UIColor.blackColor()
        label1.text = "12 photos"
        base.addSubview(label1)
        pinView!.leftCalloutAccessoryView = base
        pinView!.pinColor = .Red

    }

    return pinView

}
  • Alternativ, wenn es einen einfachen Weg, um die schriftart zu ändern der annotation Titel dann tun würde, scheint ziemlich lächerlich, dass du mir nicht!
InformationsquelleAutor TimWhiting | 2015-01-21
Schreibe einen Kommentar