LiveStreamTable=[[UITableView alloc]initWithFrame:CGRectMake(0, 0, 768, 960)];
LiveStreamTable.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self.view addSubview:LiveStreamTable];
此代码在 viewDidLoad 中。在 viewDidLoad 和 viewWillAppear 之间,表格被调整为 916 高度,在底部留下 44 个空像素(这是在纵向模式下)。我知道它介于打印调试信息之间。
该 View 在顶部有一个状态栏和一个导航栏,因此 960 应该正好填满整个屏幕。它与注释掉的 autoresizingMask 行一起使用。我只希望 autoresizingMask 在 iPad 旋转时影响它,以便横向模式工作。
我也有一个问题,如果我首先进入横向屏幕,那么它的大小就会错误。它最终有点太宽太短。我认为这是相关的。
我如何正确使用 autoresizingMask 以便我的表格在纵向和横向中占据整个 View (状态栏和导航栏除外)?
最佳答案
您的自动调整掩码是正确的,但您初始化框架的方式不正确。
考虑如果这个 View 是横向打开的,frame (0, 0, 768, 960) 会产生错误的帧。
代替
LiveStreamTable=[[UITableView alloc]initWithFrame:CGRectMake(0, 0, 768, 960)];
你应该试试
LiveStreamTable=[[UITableView alloc]initWithFrame:self.view.bounds];
这将根据您当前的 ViewController View 初始化框架。
希望对您有所帮助。
关于iPad autoresizingMask 创建底边距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4630438/