加载 View 后,我试图将 map 缩放到用户的当前位置,但是由于未捕获的异常“NSInvalidArgumentException”,我收到了错误信息“** *终止应用程序”,原因是:查看负载。请有人帮忙吗?

干杯!

- (void)viewDidLoad
{
    [super viewDidLoad];

    MKCoordinateRegion mapRegion;
    mapRegion.center.latitude = map.userLocation.coordinate.latitude;
    mapRegion.center.longitude = map.userLocation.coordinate.longitude;
    mapRegion.span.latitudeDelta = 0.2;
    mapRegion.span.longitudeDelta = 0.2;
    [map setRegion:mapRegion animated: YES];
}

最佳答案

您设置了showsUserLocation = YES吗?如果将MKMapView设置为NO,则不会更新位置。因此请确保。
MKMapView对象很可能还没有用户位置。为此,您应该采用MKMapViewDelegate协议(protocol)并实现mapView:didUpdateUserLocation:

map.delegate = self;

...
-(void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
    MKCoordinateRegion mapRegion;
    mapRegion.center = mapView.userLocation.coordinate;
    mapRegion.span.latitudeDelta = 0.2;
    mapRegion.span.longitudeDelta = 0.2;

    [mapView setRegion:mapRegion animated: YES];
}

关于iphone - MKMapView缩放到viewDidLoad上的用户位置?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6063970/

10-13 06:16