mkmapview はユーザーの場所を示します
-
28-10-2019 - |
質問
やあ、ここで質問があります。やろうとしているんです。
if (Map.showsUserLocation == YES)
{
Map.showsUserLocation = NO;
}
これはかなり単純です。アプリを起動したばかりのとき showsUserLocation
が YES に設定されていますが、デバイスが場所を見つけるのに時間がかかります。したがって、ユーザーがクリックすると、 showsUserLocation = NO
場所が見つかる前 (青い点が表示される前)。EXC_BAD_ACCESS。
Googleマップには保護コードがあり、Googleマップに青い点が表示される前に、ボタンを押すことができなくなります。 showsUserLocation
activityIndicator を表示してボタンを押します。これを行う方法はありますか?前もって感謝します。
解決
MKMapViewDelegate
メソッドがあります:
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
ここでボタンを有効にすることができますが、それまでは無効のままにしておきます。
他のヒント
かなり快適に行えます。MapView がユーザーの現在位置を取得するまで「currentLocation」ボタンを無効にし、ユーザーの現在位置を取得するときに「currentLocation」ボタンを無効にします。これを行うには、viewDidLoad/ViewDidAppear の「currentLocation」ボタンを無効にし、「currentLocation」ボタンを有効にします。 -(MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:
後のメソッド [mapView.userLocation setTitle:@"I am here"];
. 。これはうまくいきます。