2017-09-30 2 views
1

J'utilise mapbox sdk et je dois ajouter et supprimer plusieurs annotations sur la carte lorsque les utilisateurs l'utilisent. J'ai des problèmes de performances lors de l'ajout de nombreuses annotations. Je suppose que c'est parce que je ne peux pas réutiliser les mêmes annotations. En fait, les annotations que je dois ajouter sont les mêmes que celles que j'ai retirées, donc je devrais vraiment les réutiliser.Identifiant de réutilisation avec Bundle.main.loadNibNamed

//reuseIdentifier should be something specific for every single annotation like reuseIdentifier = annotation.latitude 
var annotationView = mapView.dequeueReusableAnnotationView(withIdentifier: reuseIdentifier) as? MarkerView 

if annotationView == nil 
     //How can I both use Bundle.main.loadNibNamed(...) and instance with a custom identifier here 
     annotationView = Bundle.main.loadNibNamed("MarkerView", owner: self, options: nil)?.first as? MarkerView 

     annotationView!.frame = CGRect(x: 0, y: 0, width: 60, height: 120) 

} 

La question est de savoir comment utiliser un identifiant personnalisé si j'ai chargé une vue depuis un fichier xib? Est-ce que cela résoudra mes problèmes de performance? Sinon, que me suggérez-vous?

Répondre

0

Il suffit de donner le point de vue d'un identificateur de réutilisation personnalisé avec:

- (NSString *) reuseIdentifier { 
    return @"myIdentifier"; 
}