iPad autoresizingMask创建底部边距

时间:2011-01-07 21:24:10

标签: ipad ios

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,以便我的表格将在纵向和横向中占据整个视图(状态和导航栏除外)?

1 个答案:

答案 0 :(得分:2)

您的自动调整遮罩是正确的,但启动框架的方式不是。

考虑是否在横向打开此视图,框架(0,0,768,960)产生错误的框架。

而不是

LiveStreamTable=[[UITableView alloc]initWithFrame:CGRectMake(0, 0, 768, 960)];

你应该试试

LiveStreamTable=[[UITableView alloc]initWithFrame:self.view.bounds];

这将根据您当前的ViewController视图初始化帧。

我希望这有帮助。