Eya*_*yal 0 iphone objective-c uiviewcontroller uiview ios
我有一个viewController里面的一个navigationController,视图控制器有一个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];
}
Run Code Online (Sandbox Code Playgroud)
这段代码的问题是表视图框架不正确 - 高度为460,我需要它为416.
[iPhone屏幕高度为480,减去状态栏(20)减去导航栏(44)= 416]
那么设置表格视图以便填充屏幕的正确方法是什么?
我可以想到两种方式:
将其框架设置为= (0, 0, 320, 416)
使用: [_tableView setAutoresizingMask:(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth)];
不要使用魔术数字.正确使用调整大小标记.所以是的,你的2.方法是正确的.
1)使用超级视图边界._tableView.frame = self.view.bounds;;
2)设置自动调整标志
[_tableView setAutoresizingMask: UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth];
(你已经完成了所有这些:)
1号绝对是错误的做法...如果未来的OS /设备中屏幕尺寸发生变化会怎样?
我很好奇你为什么不使用nib文件这样做,并省去了麻烦,但如果你必须在代码中执行此操作,请根据您的选项2设置自动调整大小的掩码.
| 归档时间: |
|
| 查看次数: |
1994 次 |
| 最近记录: |