检查用户位置是否在地图iphone上可见

时间:2011-09-06 12:42:10

标签: iphone mapkit userlocation

我想隐藏或显示UIButton天气用户的当前位置在地图上可见。在测试代​​码xcode时,如果用户位置在地图上不可见,我可以在“didUpdateLocation”方法中在控制台上看到meassage "User location view is NOT visible but should be. Showing...."。如何在我的案例中使用此消息生成事件以隐藏或显示UIButton? 感谢您提前提供任何帮助。

3 个答案:

答案 0 :(得分:12)

如果您想知道用户位置是否包含在当前显示的地图区域中,您可以在userLocationVisible委托方法中查看regionDidChangeAnimated属性:

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

如果您只是想知道用户位置当前是否具有值(是否可见以及是否启用了showsUserLocation),则:

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

答案 1 :(得分:4)

有一个名为userLocationVisible的属性。

在Apple Docs中

  

一个布尔值,指示设备的当前位置是否为   在地图视图中可见。 (只读)

答案 2 :(得分:1)

如果用户位置不可见,则不会获得当前lat,long。把条件设为lat,long == 0.然后按钮隐藏或显示。 它仅适用于设备(​​gps)