mkmapview showsUserLocation
-
28-10-2019 - |
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.
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.