大家有问题吗?我想做的事。
if (Map.showsUserLocation == YES)
{
Map.showsUserLocation = NO;
}
这很简单。当应用程序刚刚启动时,showsUserLocation
设置为YES,但设备需要时间才能找到位置。因此,如果用户在找到位置之前点击showsUserLocation = NO
(在蓝点出现之前)。EXC_BAD_ACCESS。
在谷歌地图中,它有保护代码,在谷歌地图得到蓝点出现之前,它将通过显示activityIndicator来禁用您按下showsUserLocation
按钮。知道怎么做吗?
MKMapViewDelegate
有一个方法:
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
你可以在这里启用按钮,在此之前保持禁用
你可以做得很舒服。禁用你的'currentLocation'按钮直到mapView获取用户的当前位置,然后'currentLocation'按钮当获取用户的当前位置。你可以通过在viewDidLoad/ViewDidAppear中禁用'currentLocation'按钮并在[mapView.userLocation setTitle:@"I am here"];
之后在-(MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:
方法中启用'currentLocation'按钮来做到这一点。