mkmapview showsUserLocation

时间:2011-09-10 11:06:07

标签: iphone objective-c mkmapview exc-bad-access showuserlocation

嘿,这里有个问题。 我正在努力做到。

if (Map.showsUserLocation == YES) 
        {
            Map.showsUserLocation = NO;
        }

这很简单。刚启动的应用程序showsUserLocation设置为YES,但设备需要一段时间才能找到该位置。因此,如果用户在找到位置之前单击showsUserLocation = NO(在蓝点出现之前)。 EXC_BAD_ACCESS。

在谷歌地图中,​​它有保护代码,在谷歌地图出现蓝点之前,它会禁止你通过显示activityIndi​​cator按下showsUserLocation按钮。 知道怎么做吗? 提前谢谢。

2 个答案:

答案 0 :(得分:1)

MKMapViewDelegate有一个方法:

- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation

您可以在此处启用此按钮,然后将其禁用。

答案 1 :(得分:0)

你可以做得很舒服。禁用“currentLocation”按钮,直到mapView获取用户的当前位置,然后获取用户当前位置时的“currentLocation”按钮。您可以通过在viewDidLoad / ViewDidAppear中禁用“currentLocation”按钮并在{{1}中启用“currentLocation”按钮来执行此操作} -(MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:之后的方法。这对你有用。