2011-10-25 10 views
5

में नहीं चुना जा रहा है मेरा ऐप मानचित्र पर पुशपिन रखता है और उसके बाद एनीमेशन का उपयोग करता है ताकि उपयोगकर्ता के पास एक दृश्य सुराग हो और तुरंत शीर्षक/उपशीर्षक पढ़ सके। निम्न कोड आईओएस 4 और आईओएस 5 दोनों में काम करता है, लेकिन आईओएस 5 में, एनोटेशन स्वचालित रूप से तब तक नहीं चुना जाता है जब तक कि मैं एनीमेशन को एनाटेशन विधि में नहीं बदलता।एमओएनएनोटेशन आईओएस 5

कोई विचार क्यों?

MapAnnotations *pushpin = [[MapAnnotations alloc] initWithCoordinate:coordinate]; 
pushpin.title = [selectedStation valueForKey:@"name"]; 
pushpin.subtitle = [selectedStation valueForKey:@"address"]; 
[stationMap addAnnotation:pushpin]; 
[stationMap selectAnnotation:pushpin animated:YES]; 

[pushpin release]; pushpin = nil; 

उत्तर

5

सुनिश्चित नहीं हैं कि इससे पहले कि लेकिन एनीमेशन शायद बनाया जाना एनोटेशन देखने की आवश्यकता है और तैयार जो तुरंत संभावना नहीं एनोटेशन जोड़ने के बाद यही कारण है कि यह काम करेगा।

- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views 
{ 
    for (MKAnnotationView *av in views) { 
     if ([av.annotation isKindOfClass:[MapAnnotations class]]) { 
      MapAnnotations *pushpin = (MapAnnotations *)av.annotation; 
      if (_this_pushpin_is_the_one_to_select) { 
       [mapView selectAnnotation:av.annotation animated:YES]; 
       break; //or return; 
      } 
     } 
    } 
} 
+0

धन्यवाद:

आप क्या कर सकते didAddAnnotationViews प्रतिनिधि विधि है जो सभी iOS संस्करण पर काम करना चाहिए करने के लिए चयन के लिए कदम है। उन्होंने एनोटेशन में एनिमेशन के संबंध में आईओएस 5 में कुछ बदलना होगा। यह काम। इतनी सरल चीज़ के लिए थोड़ा अधिक कोड, लेकिन नौकरी करता है। – afterxleep

+2

खोज से बचने के लिए, जब आप इसे जोड़ते हैं तो आप चयनित एनोटेशन को ivar के रूप में रीफ्रेश कर सकते हैं ताकि आपको प्रतिनिधि में चयन का चयन करने की आवश्यकता हो। – Anna