1

嘿你有一個問題在這裏。 我正在嘗試做。mkmapview showsUserLocation

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

這很簡單。當應用剛剛啓動時showsUserLocation設置爲YES,但設備需要時間才能找到該位置。因此,如果用戶在找到位置之前(在出現藍點之前)單擊showsUserLocation = NO。 EXC_BAD_ACCESS。

在谷歌地圖中,​​它具有保護代碼,在谷歌地圖出現藍點之前,它將禁止您通過顯示activityIndi​​cator按下showsUserLocation按鈕。 任何想法如何做到這一點? 在此先感謝。

+0

我沒有完全理解。您想做什麼??? – alecnash

回答

1

MKMapViewDelegate有一個方法:

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

您可以啓用此按鈕,直到然後把它禁用。

+0

感謝兄弟。我知道這種方法。但我的大腦根本無法想到這種情況。 – user774150

0

你可以做得很舒服。禁用「currentLocation」按鈕,直到mapView獲取用戶的當前位置,然後在獲取用戶當前位置時顯示「currentLocation」按鈕。您可以通過在viewDidLoad/ViewDidAppear中禁用「currentLocation」按鈕並在-(MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:方法中啓用「currentLocation」按鈕來實現此操作[mapView.userLocation setTitle:@"I am here"]; 。這將爲你工作。