【发布时间】: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