2011-09-06 74 views
6

我想隱藏或顯示UIButton天氣用戶的當前位置在地圖上可見。在測試代​​碼xcode時,如果用戶位置在地圖上不可見,我可以在「didUpdateLocation」方法的控制檯上看到消息"User location view is NOT visible but should be. Showing...."。我如何使用這個消息來生成事件來隱藏或顯示UIButton? 感謝您提前提供任何幫助。檢查用戶位置是否在地圖上可見iphone

回答

11

如果你想知道用戶的位置是否包含在當前顯示的地圖區域,您可以在regionDidChangeAnimated委託方法檢查userLocationVisible屬性:

- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated 
{ 
    someButton.hidden = !mapView.userLocationVisible; 
} 

如果您只是想知道用戶位置當前是否有值(無論是否可見以及是否顯示用戶位置),則:

if (mapView.userLocation.location == nil) 
    NSLog(@"user location not obtained yet"); 
else 
    NSLog(@"user location available (may or may not be currently visible)"): 
+0

非常感謝。它工作完美....! @Ron感謝你的回覆。 – alekhine

1

如果用戶位置不可見,則不會獲得當前經緯度。把條件放在lat,long == 0.然後按鈕隱藏或顯示。 它只在設備上工作(gps)

4

有一個名爲userLocationVisible的屬性。

在蘋果文檔

布爾值,指示該設備的當前位置是否位於地圖視圖 可見。 (只讀)

+0

Thnaks。你的答案有幫助。 – alekhine