5

我正在尝试调整在 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
}

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

4

2 回答 2

6

如果您只想将 mapView 设置为与视图控制器视图相同的大小(即填充屏幕),请将地图视图的框架设置为视图的边界,并为它们提供相同的自动调整大小掩码(您可以这样做在 viewDidLoad 中,您不必测试屏幕尺寸)

mapView.frame = self.view.bounds;
mapView.autoresizingMask = self.view.autoresizingMask;
于 2012-12-29T14:59:33.473 回答
1

我对静态表视图有同样的问题一个单元格包括一个 MapView。

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

我查看了不同的方法,例如:

mapView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);  

对我来说不幸的是,它仅在用户重新定位移动设备 => 重绘时才有效?

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

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

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

于 2014-01-26T17:28:21.863 回答