質問

やあ、ここで質問があります。やろうとしているんです。

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

これはかなり単純です。アプリを起動したばかりのとき showsUserLocation が YES に設定されていますが、デバイスが場所を見つけるのに時間がかかります。したがって、ユーザーがクリックすると、 showsUserLocation = NO 場所が見つかる前 (青い点が表示される前)。EXC_BAD_ACCESS。

Googleマップには保護コードがあり、Googleマップに青い点が表示される前に、ボタンを押すことができなくなります。 showsUserLocation activityIndi​​cator を表示してボタンを押します。これを行う方法はありますか?前もって感謝します。

役に立ちましたか?

解決

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"];. 。これはうまくいきます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top