2011-01-17 24 views

cevap

54

Bunu annotations özelliğini kullanarak haritanın ek açıklamaları erişebilirler. Şu anda haritada görünmeyen ek açıklamaların, onlarla ilişkilendirilmiş hiçbir ek görünüme sahip olmadığından, tüm ek açıklamaların görünümlerinin alınması mümkün olmayabilir, ancak isteğe bağlı ek açıklama için -viewForAnnotation: yöntemini kullanarak bir görünüm elde etmeye çalışabilirsiniz.

Yani burada tüm haritanın ek açıklamalar yineleme ve görüşlerini erişmeye çalıştığınızda nasıl: Bu MKAnnotationViews bir YENİ takım yaratacağız

for (id<MKAnnotation> annotation in mapView.annotations){ 
    MKAnnotationView* anView = [mapView viewForAnnotation: annotation]; 
    if (anView){ 
     // Process annotation view 
     ... 
    } 
} 
+0

yılında - döndürmez haritanızdaki mevcut olanlar. –

+4

^Hayır, yeni bir açıklama eklemez. Orijinal çözüm doğrudur. – n13

+5

Aneil, 'MKMapView' yönteminin viewForAnnotation'ını (ki bu da doğru bir şekilde Vladimir'in örneğinde çalışan) 'MKMapViewDelegate' yöntemi ile eşleştirdiğinizi sanıyorum. MapView: viewForAnnotation: '(ek açıklamaları oluşturur, ancak asla doğrudan aramazsınız). – Rob

3

hızlı 3.

func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) { 

    let selectedAnnotation = view.annotation 

     for annotation in mapView.annotations { 
      let viewI = mapView.view(for: annotation) 

      if !(viewI?.annotation is MKUserLocation){ 
       if annotation.isEqual(selectedAnnotation) { 
        viewI?.image = UIImage(named: "focus.png") 
        showLifeEventView(anotation: view) //did select a point on Map. 
       }else{ 
        viewI?.image = UIImage(named: "point.png") 
       } 
      } 
     } 
} 
+1

Bu awsome kardeşti. . zamanımı kurtardı. . –