1

嘿这里有个问题。我正在尝试做。

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

这是相当简单的。当应用刚启动时showsUserLocation设置为YES,但设备查找位置需要时间。因此,如果用户showsUserLocation = NO在找到位置之前点击(在蓝点出现之前)。EXC_BAD_ACCESS。

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

4

2 回答 2

1

MKMapViewDelegate有一个方法:

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

您可以在此处启用该按钮,然后将其保持禁用状态。

于 2011-09-10T11:15:07.470 回答
0

你可以做的很舒服。禁用“currentLocation”按钮,直到 mapView 获取用户的当前位置,然后在获取用户的当前位置时禁用“currentLocation”按钮。您可以通过禁用 viewDidLoad/ViewDidAppear 中的“currentLocation”按钮并在-(MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:之后的方法中启用“currentLocation”按钮来做到这一点[mapView.userLocation setTitle:@"I am here"];。这对你有用。

于 2011-09-10T11:35:52.043 回答