0

我在 a 中有一个 viewController navigationController,视图控制器有一个 tableview。
viewDidLoad我设置表格视图

- (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]

那么设置表格视图以填充屏幕的正确方法是什么?
我可以想到两种方法:

  1. 将其框架设置为 =(0, 0, 320, 416)

  2. 采用:[_tableView setAutoresizingMask:(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth)];

4

2 回答 2

6

不要使用幻数。正确使用调整大小标志。所以是的,你的 2. 方法是正确的。

1)使用超级视图边界。
_tableView.frame = self.view.bounds;;

2) 设置自动调整大小标志
[_tableView setAutoresizingMask: UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth];

(你已经完成了所有这些:)

于 2012-06-04T14:06:02.230 回答
6

1 号绝对是错误的做法......如果未来的操作系统/设备中的屏幕尺寸发生变化会发生什么?

我很好奇您为什么不使用 nib 文件执行此操作并省去麻烦,但如果您必须在代码中执行此操作,请根据您的选项 2 设置自动调整大小掩码。

于 2012-06-04T14:07:19.867 回答