2012-10-08 12 views
6

मेरे पास mapViewannotationViews और userLocation ब्लू डॉट के साथ है।एमकेमैपिट मानचित्र अक्षम करें उपयोगकर्ता देखें एनोटेशन देखें

मैं नीले डॉट प्राप्त करने के लिए निम्नलिखित कोड का उपयोग कर रहा:

[self.mapView setShowsUserLocation:YES]; 

annotationViews चयन कर रहे हैं और कॉलआउट हैं।

हालांकि अगर annotationView उपयोगकर्ता के स्थान के करीब है तो कभी-कभी नीला बिंदु स्पर्श को चुरा लेता है।

मैं annotationView.enabled = NO; सेट कर सकता हूं और यह एनोटेशन व्यू दिखाएगा लेकिन यह annotationView के करीब से स्पर्श नहीं चुराएगा।

मैं उपयोगकर्ता स्थान नीले बिंदु annotationView को सक्षम = NO पर सेट करना चाहता हूं, इसलिए यह annotationViews के करीब स्पर्श को चुरा नहीं लेता है।

मैं के साथ नीले डॉट के शीर्षक सेट कर सकते हैं:

self.mapView.userLocation.title = @"title here..." 

लेकिन मैं नीले डॉट अक्षम नहीं कर सकता।

धन्यवाद!

+0

कोशिश annotation.hidden = हाँ – 0xSina

+1

आप ऐसा नहीं कर सकते self.mapView.userLocation.enabled = नहीं? –

+0

यदि आपको अपना एनोटेशन व्यू बनाने में कोई फर्क नहीं पड़ता है, तो आप उस दृश्य को ओवरराइड कर सकते हैं जो '-mapView: viewForAnotation:' में उपयोग किया जाता है। हालांकि बहुत काम है! –

उत्तर

8

आप पर enabled सेट कर सकते हैं उपयोगकर्ता स्थान के MKAnnotationViewdidAddAnnotationViews प्रतिनिधि विधि में इसे करने के लिए एक संदर्भ हो रही द्वारा (ताकि आप सुनिश्चित देखने के लिए तैयार है हो सकता है):

-(void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views 
{ 
    MKAnnotationView *ulv = [mapView viewForAnnotation:mapView.userLocation]; 
    ulv.enabled = NO; 
} 

(वहाँ पर कोई enabled संपत्ति है userLocationमॉडल वस्तु -। यह देखने के एक संपत्ति है)

+0

महान काम करता है, धन्यवाद! – user1607483

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