MapView区域缩放级别在ios6中有所不同



我有一个应用程序,使用MapKit来布局带有注释的地图。我有一个创建mkcoordinaterregion的方法,我将它分配给setreregion,以适当地调整地图的缩放级别。但IOS 6的缩放级别低于IOS 5。我在ios5上运行时,注释间距很好,但在ios6中,它们就在边上。如果我把比例系数调大,我可以在ios6中得到正确的间距但在ios5中,它们都挤在了中间。

- (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中有什么变化会影响缩放级别吗?

是的,他们改变了iOS 6的最大缩放级别。我听说如果你下载Xcode 4.6 DP1,最终的构建将使它们更接近相同(在iOS 5和iOS 6之间)。

我发现Xcode 4.6.1在模拟器中的缩放级别有所提高,但在真正的iOS 6设备上仍然有限。直到我把这些设备升级到iOS 6.1.3,现在变焦似乎回到了iOS 6的水平。

相关内容

  • 没有找到相关文章

最新更新