2012-08-01 6 views
16

W tej chwili zapełniam widok mapy z adnotacjami, a także wyświetlam bieżącą lokalizację użytkownika. Metoda viewForAnnotation zastępuje wszystkie adnotacje za pomocą domyślnej czerwonej pinezki, ale chcę zwrócić widoki innych adnotacji, ale utrzymuję lokalizację użytkownika jako domyślny niebieski sygnał nawigacyjny. Czy istnieje sposób, aby to zrobić po prostu, czy muszę utworzyć nowy widok adnotacji i zwrócić właściwy w zależności od adnotacji?Jak zatrzymać metodę viewForAnnotation przed przesłonięciem domyślnego niebieskiego sygnału nawigacyjnego użytkownika w systemie iOS

Teraz mam coś takiego:

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

Ale nie mogę równać się z dwóch, bo nie może uzyskać własność współrzędnych z argumentu adnotacji.

Ktoś wie, jakie są tego rozwiązania?

Odpowiedz

28

sprawdzeniu dokumentacji tutaj:

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

Jak stwierdza:

Jeśli obiekt w parametrze adnotacji jest instancją klasy MKUserLocation można zapewnić zwyczaj widok, aby wskazać lokalizację użytkownika . Aby wyświetlić położenie użytkownika przy użyciu domyślnego widoku systemu, return zero.

Więc można dodać warunkowego, aby sprawdzić to:

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

lullll im głupie, bardzo cenione, próbowałem wszystkich tych głupich arounds pracy, ale tak ... –

+0

dzięki tak dużo! Muszę nauczyć się przestać być takim nowicjuszem z dokumentacją Apple'a –

Powiązane problemy