Iphone 目标c-设置子视图框架以使其填充屏幕的正确方法
我在navigationController中有一个viewController,视图控制器有一个tableview。 在viewDidLoad中,我设置了表格视图Iphone 目标c-设置子视图框架以使其填充屏幕的正确方法,iphone,objective-c,ios,uiview,uiviewcontroller,Iphone,Objective C,Ios,Uiview,Uiviewcontroller,我在navigationController中有一个viewController,视图控制器有一个tableview。 在viewDidLoad中,我设置了表格视图 - (void)viewDidLoad { [super viewDidLoad]; // init tableView CGRect tableFrame = self.view.bounds; _tableView = [[UITableView alloc] initWithFrame:ta
- (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,0320416
用法:[[u tableView setAutoresizingMask:uiviewautoresizingflexiblewhight | UIViewAutoresizingFlexibleWidth]
不要使用魔法数字。正确使用调整大小标志。 是的,你的2。方法是正确的 1使用超级视图边界。_tableView.frame=self.view.bounds 2设置自动调整大小标志[_tableviewsetautoresizingmask:uiviewautoresizingflexiblewhight | UIViewAutoresizingFlexibleWidth]
你已经做到了这一切:第一条路绝对是错误的。。。如果屏幕大小在未来的操作系统/设备中发生变化,会发生什么情况 我很好奇为什么你不使用nib文件来做这件事,省去了麻烦,但是如果你必须用代码来做,那么根据你的选项2设置自动调整大小的掩码