LiveStreamTable=[[UITableView alloc]initWithFrame:CGRectMake(0, 0, 768, 960)];
LiveStreamTable.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self.view addSubview:LiveStreamTable];这段代码是用viewDidLoad编写的。在viewDidLoad和viewWillAppear之间,表格的大小被调整到916高,底部留下44个空白像素(这是在纵向模式下)。我从打印调试信息中知道它介于两者之间。
视图顶部有一个状态栏和一个导航栏,所以960应该正好填满整个屏幕。注释掉的autoresizingMask行也是如此。我只希望autoresizingMask在旋转iPad时影响它,以便横向模式工作。
我也有一个问题,如果我一开始就在横屏上,那么它的大小就会错误。它最终有点太宽太短了。我想这是有关联的。
如何正确使用autoresizingMask,使我的表格同时占据纵向和横向的整个视图(状态栏和导航栏除外)?
发布于 2011-07-11 01:49:09
您的自动调整大小掩码是正确的,但您初始化帧的方式不正确。
考虑如果此视图是在横向打开的,帧(0,0,768,960)会产生错误的帧。
而不是
LiveStreamTable=[[UITableView alloc]initWithFrame:CGRectMake(0, 0, 768, 960)];你应该试试
LiveStreamTable=[[UITableView alloc]initWithFrame:self.view.bounds];这将根据当前ViewController的视图初始化帧。
我希望这能有所帮助。
https://stackoverflow.com/questions/4630438
复制相似问题