LiveStreamTable=[[UITableView alloc]initWithFrame:CGRectMake(0, 0, 768, 960)];
LiveStreamTable.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self.view addSubview:LiveStreamTable];
此代码位于viewDidLoad中。在viewDidLoad和viewWillAppear之间,表格调整为916高度,底部留下44个空px(这是纵向模式)。我知道它介于打印调试信息之间。
视图顶部有状态栏和导航栏,因此960应该恰好填满整个屏幕。并且它与autoresizingMask行注释掉了。我只希望autoresizingMask在旋转iPad时影响它,以便横向模式起作用。
我也遇到了一个问题,如果我首先进入横向屏幕,那么它的大小就会出错。它最终有点太宽太短。我认为这是相关的。
如何正确使用autoresizingMask,以便我的表格将在纵向和横向中占据整个视图(状态和导航栏除外)?
答案 0 :(得分:2)
您的自动调整遮罩是正确的,但启动框架的方式不是。
考虑是否在横向打开此视图,框架(0,0,768,960)产生错误的框架。
而不是
LiveStreamTable=[[UITableView alloc]initWithFrame:CGRectMake(0, 0, 768, 960)];
你应该试试
LiveStreamTable=[[UITableView alloc]initWithFrame:self.view.bounds];
这将根据您当前的ViewController视图初始化帧。
我希望这有帮助。