我在navigationController
内有一个viewController,视图控制器有一个tableview
在viewDidLoad
我设置了tableview
- (void)viewDidLoad
{
[super viewDidLoad];
// init tableView
CGRect tableFrame = self.view.bounds;
_tableView = [[UITableView alloc] initWithFrame:tableFrame style:UITableViewStylePlain];
_tableView.delegate = self;
_tableView.dataSource = self;
[self.view addSubview:_tableView];
}
此代码的问题是表格视图框架不正确 - 高度为460,我需要它为416.
[iPhone屏幕高度为480,减去状态栏(20)减去导航栏(44)= 416]
那么设置表格视图的正确方法是什么,它将填满屏幕?
我可以想到两种方式:
将其框架设置为= (0, 0, 320, 416)
使用:[_tableView setAutoresizingMask:(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth)];
答案 0 :(得分:6)
不要使用魔术数字。正确使用调整大小标记。 所以是的,你的2.方法是正确的。
1)使用超级界限。
_tableView.frame = self.view.bounds;
;
2)设置自动调整标志
为[_tableView setAutoresizingMask: UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth];
(你已经完成了所有这些:)
答案 1 :(得分:6)
1号绝对是错误的做法...如果未来的OS /设备屏幕尺寸发生变化会怎样?
我很好奇你为什么不使用nib文件这样做,并省去了麻烦,但如果你必须在代码中执行此操作,请根据选项2设置自动调整大小的掩码。