Проверьте, видно ли местоположение пользователя на карте iphone - PullRequest
6 голосов
/ 06 сентября 2011

Я хочу скрыть или показать текущее местоположение пользователя погоды UIButton на карте.Во время тестирования кода xcode я могу увидеть meassage "User location view is NOT visible but should be. Showing...." на консоли в методе didUpdateLocation, если местоположение пользователя не видно на карте.Как я могу использовать это сообщение для генерации событий в моем случае, чтобы скрыть или показать UIButton?Спасибо за любую помощь заранее.

Ответы [ 3 ]

12 голосов
/ 06 сентября 2011

Если вы хотите узнать, содержится ли местоположение пользователя в отображаемой в данный момент области карты, вы можете проверить свойство userLocationVisible в методе делегата regionDidChangeAnimated:

- (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)"):
4 голосов
/ 06 сентября 2011

Существует свойство с именем userLocationVisible.

В Apple Docs

Логическое значение, указывающее, является ли текущее местоположение устройства видимый в представлении карты. (Только для чтения)

1 голос
/ 06 сентября 2011

если пользовательское местоположение не видно, вы не получите текущий lat, long.поставьте условие, если lat, long == 0. затем кнопку скрыть или показать.это работает только на устройстве (GPS)

...