2015-12-13 4 views

Répondre

0

OK, je dois admettre que celui-ci m'a vraiment rendu curieux! Je ne connais pas une façon propre de faire ce que vous voulez, bien que je soupçonne qu'il pourrait y avoir des hacks intéressants que vous pouvez faire autour de l'ajout de superpositions.

Une solution que vous pouvez expérimenter est d'utiliser viewForAnnotation() pour extraire l'emplacement de chaque annotation de broche sur la carte, la transformer en vue, puis ajouter des vues personnalisées à sa place. Vous pouvez ensuite masquer la carte entière (qui cacherait ses broches), laissant vos fausses broches en place.

Du haut de ma tête, il ressemblerait à quelque chose comme ceci:

let annotations = mapView.annotations 

for annotation in annotations { 
    if let annotationView = mapView.viewForAnnotation(annotation) { 
     let transformedFrame = view.convertRect(annotationView.frame, fromView: annotationView.superview) 

     let testView = UIView(frame: transformedFrame) 
     testView.backgroundColor = UIColor.redColor() 

     view.addSubview(testView) 
    } 
} 

Vous aurez des problèmes lorsque la vue de carte se déplace, cependant, alors vous pourriez avoir besoin de garder une trace de vos broches faux et mouvement les convenablement.

+0

Merci beaucoup. Cependant, cela ne semble pas fonctionner. Soit la carte s'affiche toujours normalement, soit si je la cache, elle affiche un écran noir. – jim

+0

D'où vient l'écran noir? Utilisez-vous 'mapView.hidden = true'? Vous pouvez toujours supprimer complètement la vue de la carte une fois que vous avez les emplacements de ses broches. – TwoStraws

+0

Si je supprime la carte de son superView, l'écran est toujours noir. – jim