我有一个使用 MapKit 来布局带有注释的地图的应用程序。我有一个创建 MKCoordinateRegion 的方法,我将它分配给 setRegion 以适当地调整地图的缩放级别。但是 IOS 6 中的缩放级别低于 IOS 5。当我在 IOS 5 上运行时,注释的间距很好,但在 IOS 6 中它们正好在边缘。如果我调高比例因子,我可以在 IOS 6 中获得正确的间距,但在 IOS 5 中,它们都被卡在了中间。
- (MKCoordinateRegion)calculateRegion
{
MKCoordinateRegion region;
double scaleValue = 1.5
//set an initial value for coordinates from any annotation
MyAnnotation *annotation = [self.annotations lastObject];
CLLocationCoordinate2D max = annotation.coordinate;
CLLocationCoordinate2D min = max;
double latitude, longitude;
for (MyAnnotation *annotation in self.annotations) {
latitude = annotation.coordinate.latitude;
longitude = annotation.coordinate.longitude;
if (latitude > max.latitude) max.latitude = latitude;
else if (latitude < min.latitude) min.latitude = latitude;
if (longitude > max.longitude) max.longitude = longitude;
else if (longitude < min.longitude) min.longitude = longitude;
}
// set the center of the mapview
region.center.latitude = (max.latitude + min.latitude) / 2;
region.center.longitude = (max.longitude + min.longitude) / 2;
// set the span to be larger than the max values to add some padding around pins
region.span.latitudeDelta = (max.latitude - min.latitude) * scaleValue;
region.span.longitudeDelta = (max.longitude - min.longitude) * scaleValue;
MKCoordinateRegion regionThatFits = [self.mapView regionThatFits:region];
region = regionThatFits;
return region;
}
将 scaleFactor 设置为 2.0 以上适用于 IOS 6,1.3 适用于 IOS 5。奇怪的是 IOS 6 模拟器以与 IOS 5 中相同的方式显示注释。它只是在我用于测试的 iPhone 4S 上它显示不正确。IOS 6 中是否发生了会影响缩放级别的更改?