我想在啓動時將地圖縮放到當前用戶位置。我嘗試在viewDidLoad上使用mapView.userLocation.coordinate檢索用戶位置,但返回的座標爲(0,0),可能是因爲MapKit在啓動時不會「查找」用戶位置。iOS - 在應用程序啓動時縮放到當前用戶位置
我發現了一個實現方法didUpdateToLocation的解決方案。我做了以下內容:
- (void) locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
if (hasZoomedAtStartUp == NO)
{
[self zoomAtStartUp]; // my method to zoom the map
hasZoomedAtStartUp = YES;
}
}
我在.h文件中創建並在viewDidLoad中NO initialied它的hasZoomedAtStartUp變量。
此解決方案工作正常,但我想知道是否有另一種方法來做到這一點,沒有if語句。 IF與startUp相關的justo,所以我想刪除它,出於性能原因。
我一直需要位置服務,因爲我正在開發(實際上是爲了學習)基於地圖的應用程序。 If語句不是一個很大的性能問題,但是,因爲我總是需要它,所以它可能是。我想知道我是否可以在其他地方執行此任務,因爲我只需要一次(在startUp)。 – Beraldo 2012-02-26 15:59:08
@尼克,不,我不同意你的觀點,如果有人不需要經常定位服務,那就沒有問題。我們只需要正確編程didUpdateToLocation和stopUpdatingLocation方法兩者。我們可以做到這一點,假設我們在特定的(A)上顯示CurrentLocation。然後,我們只需要從ViewLoadingTime調用didUpdateToLocation並在View中調用stopUpdatingLocation去disAppear( - (void )viewWillDisappear:(BOOL)動畫方法。)。 – Kamarshad 2012-02-29 10:41:13