Question

Hé, ayez une question ici. J'essaye de faire.

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

C'est assez simple. Quand l'application vient de commencer showsUserLocation est défini sur oui, mais il faut du temps pour que l'appareil trouve l'emplacement. Donc, si l'utilisateur clique showsUserLocation = NO Avant que l'emplacement ne soit trouvé (avant l'apparition du point bleu). EXC_BAD_ACCESS.

Dans Google Map, il a le code de protection, avant que Google Map n'apparaît le point bleu, il vous désactivera d'appuyer sur le showsUserLocation bouton en affichant l'activitéIndicator. Une idée comment faire cela? Merci d'avance.

Était-ce utile?

La solution

MKMapViewDelegate a une méthode:

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

Vous pouvez activer le bouton ici, jusque-là, le garder désactivé.

Autres conseils

Vous pouvez faire assez confortablement. Désactivez votre bouton `` CurrentLocation '' jusqu'à ce que MapView obtienne l'emplacement actuel de l'utilisateur, puis le bouton «CurrentLocation» lorsque vous obtenez l'emplacement actuel de l'utilisateur. Vous pouvez le faire en désactivant le bouton «CurrentLocation» dans le bouton ViewDidload / ViewDidAppear et activer le bouton «CurrentLocation» dans -(MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation: Méthode après [mapView.userLocation setTitle:@"I am here"];. Cela fonctionnera pour vous.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top