加载 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/