2012-08-01 21 views
16

में डिफ़ॉल्ट उपयोगकर्ता स्थान नीले प्रकाश स्तम्भ अधिभावी अभी मैं एनोटेशन के साथ एक मानचित्र दृश्य को आबाद करने रहा हूँ, और भी उपयोगकर्ता के वर्तमान स्थान प्रदर्शित करने से viewForAnnotation विधि को रोकने के लिए। ViewForAnotation विधि के साथ, यह डिफ़ॉल्ट लाल पिन के साथ सभी एनोटेशन को ओवरराइड करता है, लेकिन मैं अन्य टिप्पणियों के लिए दृश्य वापस करना चाहता हूं, लेकिन उपयोगकर्ता को डिफ़ॉल्ट नीले बीकन को स्थानांतरित करना चाहता हूं। क्या ऐसा करने का कोई तरीका है या क्या मुझे एक नया एनोटेशन व्यू बनाना है और एनोटेशन के आधार पर सही एक को वापस करना है?कैसे आईओएस

अभी मैं कुछ इस तरह है:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation 
{ 
    if (annotation.coordinate == locationManager.location.coordinate) { 

return nil; 

    }else { 

    MKAnnotationView *annotationView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"Beacon"]; 

    // Button 
    UIButton *button = [UIButton buttonWithType:UIButtonTypeDetailDisclosure]; 
    button.frame = CGRectMake(0, 0, 23, 23); 
    annotationView.rightCalloutAccessoryView = button; 


    annotationView.canShowCallout = YES; 

    return annotationView; 
} 
} 

लेकिन मैं दो समानता नहीं कर सकता क्योंकि मैं एनोटेशन तर्क से बाहर संपत्ति समन्वय नहीं मिल सकता है।

किसी इस के लिए किसी भी समाधान पता है? प्रलेखन यहाँ से बाहर

उत्तर

28

की जांच:

http://developer.apple.com/library/ios/#documentation/MapKit/Reference/MKMapViewDelegate_Protocol/MKMapViewDelegate/MKMapViewDelegate.html

यह कहा गया के रूप में:

एनोटेशन पैरामीटर में वस्तु MKUserLocation वर्ग का एक उदाहरण है, तो आप एक कस्टम प्रदान कर सकते हैं उपयोगकर्ता के स्थान को इंगित करने के लिए देखें। डिफ़ॉल्ट सिस्टम दृश्य का उपयोग कर उपयोगकर्ता का स्थान प्रदर्शित करने के लिए, शून्य वापस करें।

तो आप इस के लिए जाँच करने के लिए एक सशर्त जोड़ सकते हैं:

if([annotation isKindOfClass: [MKUserLocation class]]) { 
    return nil; 
} 
+0

lullll im बेवकूफ, बहुत सराहना, मैं इन बेवकूफ काम arounds के सभी प्रयास कर रहा था लेकिन हाँ ... –

+0

बहुत बहुत धन्यवाद! मुझे एप्पल के दस्तावेज के साथ इस तरह के एक नए होने से रोकने के लिए सीखना चाहिए –