userLocation上的MKMapView中心(最初) - 仅适用于iPhone 4?
我实现了以下MKMapView方法,该方法在添加注释后运行。我在接口生成器中将我的MKMapView地图(parishMap)设置为“显示用户位置”,并且在加载地图视图时,蓝点总是出现在mapview的第二个左右。
这是我在Map View控制器实现中的代码:
// Center map on user location (initially)
- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views {
for(MKAnnotationView *annotationView in views) {
if(annotationView.annotation == parishMap.userLocation) {
MKCoordinateRegion region;
MKCoordinateSpan span;
span.latitudeDelta=0.03;
span.longitudeDelta=0.03;
CLLocationCoordinate2D location=parishMap.userLocation.coordinate;
location = parishMap.userLocation.location.coordinate;
region.span=span;
region.center=location;
[parishMap setRegion:region animated:TRUE];
[parishMap regionThatFits:region];
}
}
}
当我在iPhone 4上打开mapview时,mapview总是(并且几乎立即)移动到userLocation点的中心。但是,当我在iPhone 3Gs或iPod Touch(2010)上打开mapview时,它不会以userLocation为中心,而只是停留在我为地图视图设置的默认缩放/区域。
关于为什么这段代码不能用于非iPhone 4设备的任何想法(它们都运行4.2.x最新的iOS)?
没有找到相关结果
已邀请:
2 个回复
嘘伪
您可以根据最新的位置更新,相应地将地图居中。
吞睫素
我不确定为什么它适用于iPhone 4而不是其他,但这是我用来调整区域的代码:
试试这种方式,看看它是如何工作的。你在做regionThatFits方法的方式,实际上不应该是方法的使用方式。您可以尝试注释掉代码的最后一行,它应该没有区别。无论如何,请尝试我刚给出的方法,如果您有任何问题请告诉我。