2012-08-01 13 views
16

Şu anda bir ek açıklamalarla harita görünümünü ve kullanıcının geçerli konumunu görüntülüyorum. ViewForAnnotation yöntemi ile, tüm ek açıklamaları varsayılan kırmızı iğne ile geçersiz kılar, ancak diğer ek açıklamaların görünümlerini döndürmek, ancak kullanıcının konumunu varsayılan mavi işaretçiyi tutmak istiyorum. Bunu basit bir şekilde yapmanın bir yolu var mı yoksa yeni bir ek açıklama görünümü oluşturmalı ve ek açıklamaya göre doğru olanı mı vermeliyim?iOS'ta varsayılan kullanıcı konumu mavi işaretçisini geçersiz kılmak için viewForAnnotation yöntemi nasıl durdurulur

Şu anda böyle bir şey var:

- (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; 
} 
} 

Ama açıklama tartışmanın dışında koordine özelliği alınamıyor çünkü iki eşit olamaz.

Bunun için herhangi bir çözüm bilen var mı? Burada belgelere dışarı

cevap

28

Kontrol:

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

o belirttiği gibi:

açıklama parametresinde nesne MKUserLocation sınıfının bir örneğidir ise, özel bir sağlayabilir kullanıcının yerini belirtmek için görüntüleyin. Kullanıcının konumunu varsayılan sistem görünümünü kullanarak görüntülemek için, dönüş yapın.

Yani bunun kontrol etmek için bir koşullu ekleyebilirsiniz:

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

lullll im aptal, çok çok ... evet ama, ben bu aptal çalışma yolları yer tüm çalışıyordu –

+0

teşekkür takdir! Apple'ın belgeleriyle böyle bir yeniyi bırakmayı öğrenmeliyim –

İlgili konular