【问题标题】:MKMapView rotation iOS6 scalingMKMapView 旋转 iOS6 缩放
【发布时间】:2012-10-03 10:23:10
【问题描述】:

在 iOS6 之前,我使用 MKMapView 的子视图根据用户的 GPS 方向(非航向)旋转 MKMapView。一切都很完美,我将视图初始化如下:

mapView = [[MKMapView alloc] init];    
mapView.delegate = self;
mapView.clipsToBounds = FALSE;
mapView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;        
self.view = mapView;

旋转时我做了以下操作:

UIView *innerMap = [mapView.subviews objectAtIndex:0];
if([innerMap isKindOfClass:[UIView class]])
{
    innerMap.transform = CGAffineTransformMakeRotation(degreesToRadians(-lastDegrees));
}

正如我所说,一切都很完美。好消息是当地图旋转时,它会自动缩放到视图的整个框架并填充旋转创建的黑色角落。

但是,新的 iOS6 地图无法缩放和填充角落!所以当它旋转时,一半的视图丢失了,另一半是黑色的(背景色)。 我尝试了什么?

  • 尝试新 MKMapview 的所有不同子视图(也将它们的 resizingmask 设置为与地图视图相同的值)
  • 尝试将 contentmode 设置为 scaleToFill(也在子视图中)
  • 尝试将 autoresizes 子视图设置为 true
  • 尝试在旋转后重置框架

不幸的是,我所有的尝试都没有效果。不知何故,谷歌地图会自动缩放并填充黑色角落,而 iOS 地图则不会。那么我是否在这里遗漏了一些东西,我忘记了 UIView 的一些很棒的属性,或者这对于新的 iOS6 地图来说根本不可能?

【问题讨论】:

    标签: iphone ios mkmapview ios6 ios6-maps


    【解决方案1】:

    如何让 MapView 比屏幕尺寸大得多,这样当它旋转时你就看不到它的周围?

    【讨论】:

    • 嗨,谢谢,这是一个有效的解决方案,我已经在当前版本中实现了它。然而问题是我不喜欢这个解决方案,因为用户需要加载比必要更多的数据,并且在 3G 上 iPhone4 需要太多时间来加载地图。我只是想知道我是否错过了自动调整大小的内容。
    • 我使用克雷格描述的方法。没有人抱怨数据使用。卖了几万。您可以调整 mapView 的大小,使其不会太大。另外我这样做的方式是我有一个常规视图,我按照我想要的方式在 XIB 中调整大小,然后在代码中创建一个 MapView,调整它的大小,并将其作为子视图添加到 XIB 视图中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-04
    • 2012-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-20
    相关资源
    最近更新 更多