6

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

4

3 回答 3

14

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

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

如果您只想知道用户位置当前是否有值(是否可见以及是否打开了 showUserLocation),那么:

if (mapView.userLocation.location == nil)
    NSLog(@"user location not obtained yet");
else
    NSLog(@"user location available (may or may not be currently visible)"):
于 2011-09-06T13:21:11.903 回答
4

有一个名为 userLocationVisible 的属性。

在 Apple 文档中

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

于 2011-09-06T13:20:42.263 回答
1

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

于 2011-09-06T12:55:14.803 回答