在Objective-C中在iOS 6上调整MKMapView的Frame

时间:2012-12-29 11:31:17

标签: objective-c ios6 mkmapview

我正在尝试调整我在IB上为4英寸设备创建的MKMapView的帧,但它不起作用。这是我在viewDidLoad上的代码:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.

    // Resizing UILabel for 4-inch screen
    CGRect screenBounds = [[UIScreen mainScreen] bounds];
    if (screenBounds.size.height == 568) // 4 inch
    {
        mapView.frame = CGRectMake(0, 44, 320, 504);
    }
    else // 3.5 inch
    {
        mapView.frame = CGRectMake(0, 44, 320, 416);
    }
    // END - Resizing UILabel for 4-inch screen
}

有谁能告诉我这个设置有什么问题?感谢。

2 个答案:

答案 0 :(得分:6)

如果您只想将mapView设置为与视图控制器视图相同的大小(即填充屏幕),请将地图视图的框架设置为视图的边界,并为它们提供相同的自动调整遮罩(您可以在viewDidLoad中执行此操作,您不必测试屏幕大小)

mapView.frame = self.view.bounds;
mapView.autoresizingMask = self.view.autoresizingMask;

答案 1 :(得分:1)

我对静态表View有同样的问题 一个单元格包含一个MapView。

不同的iphone屏幕尺寸:地图视图单元格的不同像元高度。

我看了不同的方法,如:

mapView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);  

不幸的是,它只适用于用户重定向移动设备=>重绘?

我的解决方案是正确使用IB中的AUTO LAYOUT并使用约束 它解决了我的问题

Left Horizontal Space Constraint = '0'
Right Horizontal Space Constraint = '0'
Top Vertical Space Constraint = '0'
Bottom Vertical Space Constraint = '0'

- >这是我在stackoverflow.com上的第一篇文章! : - )