2010-02-09 12 views
6

एमकेमैप व्यू का उपयोग करके मेरे पास लोड किए गए एनोटेटेशन का ढेर है और मैं खंडित नियंत्रण के साथ प्रदर्शित एनोटेशन को फ़िल्टर करने में सक्षम होना चाहता हूं।उन्हें हटाए बिना नक्शा एनोटेशन छुपाएं

मैं एक प्रकार परिवर्तनीय के साथ कस्टम एनोटेशन का उपयोग कर रहा हूं, इसलिए मैं उन्हें एक-दूसरे से अलग बता सकता हूं लेकिन मैं इच्छानुसार एनोटेशन दृश्यों का सबसेट छुपाने और प्रदर्शित करने का कोई तरीका नहीं ढूंढ पाया।

उत्तर

8

ज़रूर, इस प्रयास करें:

ऑब्जेक्टिव-सी समाधान:

[[yourMapView viewForAnnotation:yourAnnotation] setHidden:YES] 

स्विफ्ट 4 समाधान:

yourMapView.view(for: yourAnnotation)?.isHidden = true 

यह आपके द्वारा निर्दिष्ट से संबद्ध दृश्य वापस आ जाएगी एनोटेशन ऑब्जेक्ट, फिर आप दृश्य को छुपा सकते हैं। यहां documentation है।

+0

कि के लिए धन्यवाद, एक का इलाज काम किया। इसे जल्द से जल्द वापस पाने के लिए खेद है। – Affian

+0

एनपी ... मदद करने में खुशी हुई! –

+0

फ़िल्टरिंग करते समय एनोटेशन को छिपाने या इसे हटाने के लिए बेहतर होता है? – lostintranslation

0

अगर आप MKAnnotationView (बुलबुला) को छिपाने के लिए आप एक कस्टम एक बना सकते हैं चाहते हैं:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation 
{ 

    if (annotation==self.map.mapView.userLocation) 
     return nil; 


    MKAnnotationView *annotationView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"loc"]; 
    if([annotation isKindOfClass:[AnnotationCustomClass class]]) { 
     annotationView.canShowCallout = NO; // <- hide the bubble 

    } 

    return annotationView; 

} 
संबंधित मुद्दे