我希望我的 mapView 以初始大小(我确定的缩放级别)显示,手机位置在地图中居中。完成此操作后,我希望用户能够更改缩放级别并平移到他们心中的内容。下次他们进入应用程序时,我想像上次一样重新初始化地图。
问题是当我进来时,它似乎在获得有效的位置修复之前设置了地图大小。
任何人都可以指出一个最佳实践初始化的例子吗?
我希望我的 mapView 以初始大小(我确定的缩放级别)显示,手机位置在地图中居中。完成此操作后,我希望用户能够更改缩放级别并平移到他们心中的内容。下次他们进入应用程序时,我想像上次一样重新初始化地图。
问题是当我进来时,它似乎在获得有效的位置修复之前设置了地图大小。
任何人都可以指出一个最佳实践初始化的例子吗?
我用下一个方法解决这个问题。我认为代码是不言自明的
- (void)mapView:(MKMapView *)mapView
didUpdateUserLocation:(MKUserLocation *)userLocation
{
if (!_userLocated &&
userLocation.coordinate.latitude != 0.0 &&
userLocation.coordinate.longitude != 0.0)
{
MKCoordinateRegion mapRegion;
mapRegion.center = mapView.userLocation.coordinate;
mapRegion.span = MKCoordinateSpanMake(0.04, 0.04);
[mapView setRegion:mapRegion animated: YES];
_userLocated = YES;
}
}
并且不要忘记设置UIMapView
委托和Shows user location
.