1

在 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 的所有不同子视图(也将它们的调整掩码设置为与地图视图相同的值)
  • 试图将 contentmode 设置为 scaleToFill (也在子视图中)
  • 试图将自动调整子视图设置为 true
  • 旋转后尝试重置框架

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

4

1 回答 1

1

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

于 2012-10-03T20:53:23.087 回答