I want to hide or show a UIButton weather user's current location is visible on map. While testing the code xcode I can see meassage "User location view is NOT visible but should be. Showing...."
on console in "didUpdateLocation" method if users location is not visible on map. How can I use this message to generate events in my case to hide or show a UIButton?
Thanks for any help in advance.
If you want to know whether the user location is contained in the currently displayed map region, you can check the userLocationVisible
property in the regionDidChangeAnimated
delegate method:
- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
{
someButton.hidden = !mapView.userLocationVisible;
}
If you just want to know whether the user location currently has a value (whether it's visible or not and whether showsUserLocation is on or not), then:
if (mapView.userLocation.location == nil)
NSLog(@"user location not obtained yet");
else
NSLog(@"user location available (may or may not be currently visible)"):
There is property called userLocationVisible.
In Apple Docs
A Boolean value indicating whether the device’s current location is visible in the map view. (read-only)
if user location is not visible you does not get current lat,long . put the condition if lat ,long == 0. then button hide or show. it work on only device(gps)
来源:https://stackoverflow.com/questions/7320101/check-if-user-location-is-visible-on-map-iphone