mkmapview показывает пользовательское расположение - PullRequest
1 голос
/ 10 сентября 2011

Привет, есть вопрос здесь. Я пытаюсь сделать.

if (Map.showsUserLocation == YES) 
        {
            Map.showsUserLocation = NO;
        }

Это довольно просто. Когда приложение только что запустилось, showsUserLocation устанавливается на ДА, но устройству требуется время, чтобы найти местоположение. Поэтому, если пользователь нажимает showsUserLocation = NO до того, как местоположение будет найдено (до появления синей точки). EXC_BAD_ACCESS.

На карте Google, он имеет защитный код, и до того, как на карте Google появится синяя точка, он не позволит вам нажать кнопку showsUserLocation, отображая ActivityIndicator. есть идеи как это сделать? Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 10 сентября 2011

MKMapViewDelegate имеет метод:

- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation

Здесь вы можете включить кнопку, пока она не будет отключена.

0 голосов
/ 10 сентября 2011

Вы можете сделать довольно комфортно.Отключите кнопку currentLocation, пока mapView не получит текущее местоположение пользователя, а затем кнопку currentLocation, когда получите текущее местоположение пользователя. Это можно сделать, отключив кнопку currentLocation в viewDidLoad / ViewDidAppear и включив кнопку currentLocation в методе -(MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:после [mapView.userLocation setTitle:@"I am here"];.Это будет работать для вас.

...