2012-10-08 12 views
6

Mam mapView z annotationViews i niebieską kropką userLocation.Wyłącz mapę MKmapkitView Adnotacja użytkownikaLokalizacja

Używam poniższy kod, żeby dostać niebieską kropkę:

[self.mapView setShowsUserLocation:YES]; 

annotationViews są wybierane i mają objaśnienia.

Jeśli jednak annotationView znajduje się blisko lokalizacji użytkownika, czasami niebieska kropka kradnie dotyk.

Mogę ustawić annotationView.enabled = NO; i pokaże on okno adnotacji, ale nie ukradnie dotyku z zamknięcia przez annotationView.

Chciałbym ustawić lokalizację użytkownika niebieska kropka annotationView na włączone = NIE, więc nie kradnie dotyk zamknięcia przez annotationViews.

mogę ustawić tytuł niebieskiej kropki z:

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

Ale nie mogę wyłączyć niebieską kropkę.

Dzięki!

+0

Spróbuj annotation.hidden = TAK – 0xSina

+1

nie można zrobić self.mapView.userLocation.enabled = nIE? –

+0

Jeśli nie masz nic przeciwko tworzeniu własnego widoku adnotacji, możesz przesłonić widok, który zostanie użyty w '-mapView: viewForAnnotation:'. Dużo pracy! –

Odpowiedz

8

Można ustawić enabled od lokalizacji użytkownika MKAnnotationView dostając odniesienie do niej w sposób didAddAnnotationViews delegata (dzięki czemu można mieć pewność, że widok jest gotowy):

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

(Nie ma enabled nieruchomość na userLocationmodelu obiekt. - jest to własność widzenia)

+0

Działa świetnie, dzięki! – user1607483