在iPhone 5上,UITableView以3.5英寸格式切断

时间:2012-12-02 07:36:15

标签: objective-c ios xcode interface-builder iphone-5

出于某种原因,UITableView在iPhone 5上切断了。而不是在整个屏幕上看到桌面视图,我只看到蓝色背景。基本上,它的行为就像我使用的是3.5英寸屏幕一样。唯一可行的是我在模拟指标中将视图设置为“Retina 4 Full Screen”。但问题是我遇到了相反的问题3.5英寸屏幕。这是一些图片(视图目前在模拟指标中设置为“自由形式”):

enter image description here enter image description here

我试过寻找类似的问题,但都没有帮助。如果它有帮助,我有一个MainWindow.xib。我正在使用iPhone 6.0模拟器和iPhone 4S 16GB进行测试。如果有什么不清楚,我会更新这个问题。任何帮助表示赞赏。谢谢。

5 个答案:

答案 0 :(得分:6)

您可能没有设置正确的自动调整遮罩。尝试将蒙版设置为UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight

答案 1 :(得分:2)

这就是我所做的。我在属性检查器

中将xib文件大小设置为3.5

在我的视图控制器中我有这段代码,请确保在viewDidAppear方法中更改框架

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    if ([self hasFourInchDisplay]) {
        self.myTableView.frame = self.view.frame;
    }
}

- (BOOL)hasFourInchDisplay {
    return ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone && [UIScreen mainScreen].bounds.size.height == 568.0);
}

答案 2 :(得分:1)

您需要调整表格大小,添加一个属性autoresizingMask

self.tableView.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleHeight ;

您在tableView或任何子视图中添加mainView(self.view)还有一件事。你可能有这个问题。

检查mainView的边界和框架。

希望这会对你有所帮助。

答案 3 :(得分:1)

使用自动布局,您只需为表格视图的四个边距设置约束,然后单击添加约束

enter image description here

答案 4 :(得分:0)

尝试其中一项,看看它们是否有帮助:

myTableView.view.frame = self.view.bounds;
// or
myTableView.view.frame = self.view.frame;