我正在尝试调整我在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
}
有谁能告诉我这个设置有什么问题?感谢。
答案 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上的第一篇文章! : - )