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