当我以编程方式添加 UITableView 并使用 Autolayouts 时,我通常会编写如下代码:
self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)
style:UITableViewStylePlain];
[self.view addSubview:self.tableView];
self.tableView.translatesAutoresizingMaskIntoConstraints = NO;
NSDictionary *views = @{@"tableView": self.tableView};
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[tableView]|"
options:0
metrics:nil
views:views]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[tableView|"
options:0
metrics:nil
views:views]];
UITableView 的默认初始化器需要定位一些 CGRect ,但是当我们使用 AutoLayout 时,不需要编程设置框架。
- 我是否正确添加了 UITableView?
- 有没有办法避免“虚拟”CGRect?