我有一个使用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上我和#39 ; m用于测试它显示不正确。 IOS 6中是否存在可能影响缩放级别的变化?
答案 0 :(得分:0)
是的,他们更改了iOS 6中的最大缩放级别。我听说如果您下载Xcode 4.6 DP1,生成的版本将使它们更接近相同(在iOS 5和iOS 6之间)。
答案 1 :(得分:0)
我发现在使用Xcode 4.6.1的模拟器中缩放级别得到了改进,但仍然限制在真正的iOS 6设备上。直到我将这些设备更新到iOS 6.1.3,现在缩放似乎又恢复到iOS 6级别。