Swift - Custom MKAnnotationView, définir l'étiquette de titre

Je suis en train de personnaliser le MKAnnotationView pour mon mapView légende des bulles. Je suis fine avec réglage de l'annotation titre lors de l'annotation est créée, et aussi la personnalisation de l'MKAnnotationView pour ajouter des étiquettes ou des images d'e.t.c (dans le viewForAnnotation délégué), mais comment puis-je changer l'étiquette de créé au viewForAnnotation délégué, de sorte que le titre de c'est différent pour chacune des broches?

L'autre problème que j'ai est que si je ne suis pas d'ajouter un titre ou sous-titre à l'annotation lorsqu'il est créé dans la méthode viewDidLoad, mais j'essaie toujours d'en créer un en laissant self.map.addAnnotation(annotation), quand je lance l'application et appuyez sur la broche pas de légende de la bulle est affichée.

À la fin, j'aimerais avoir totalement personnalisé légende des bulles, avec des étiquettes individuelles pour chaque broche. Donc ce que j'ai vraiment nie savoir, c'est comment accéder à la viewForAnnotation délégué lorsque l'annotation est créée pour modifier les propriétés pour chaque broche.

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
}
Sinon, si il existe un moyen simple pour modifier la police de l'annotation titre, alors que le ferait, semble assez ridicule pour moi que vous ne pouvez pas!

OriginalL'auteur TimWhiting | 2015-01-21