1

ここで質問があります。私はやろうとしています。

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

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

グーグルマップでは、それは保護コードを持っています、グーグルマップが青い点を表示する前に、それはあなたがshowsUserLocationactivityIndi​​catorを表示することによってボタンを押すことを無効にします。これを行う方法はありますか?前もって感謝します。

4

2 に答える 2

1

MKMapViewDelegateメソッドがあります:

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

ここでボタンを有効にして、それまでは無効のままにしておくことができます。

于 2011-09-10T11:15:07.470 に答える
0

かなり楽にできます。mapView がユーザーの現在の位置を取得するまで「currentLocation」ボタンを無効にし、次にユーザーの現在の位置を取得するときに「currentLocation」ボタンを無効にします。これを行うには、viewDidLoad/ViewDidAppear で「currentLocation」ボタンを無効にし、-(MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:メソッドの後に「currentLocation」ボタンを有効にします[mapView.userLocation setTitle:@"I am here"];。これはあなたのために働くでしょう。

于 2011-09-10T11:35:52.043 に答える