如何使用自动布局以编程方式创建UITableView?

时间:2014-11-10 05:15:08

标签: objective-c cocoa-touch uitableview uiview autolayout

它似乎假设您使用的是框架而不是自动布局,因为您只能使用框架进行初始化。我做错了吗?

1 个答案:

答案 0 :(得分:5)

您可以通过编程方式使用autolayout。 您不需要使用框架初始化UITableView。相反,您必须设置translatesAutoresizingMaskIntoConstraints = NO,将表视图添加到父视图,然后在代码中定义约束。 例如:

UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
tableView.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:tableView];
NSDictionary *views =
      NSDictionaryOfVariableBindings(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]];

请参阅https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/AutolayoutPG/AdoptingAutoLayout/AdoptingAutoLayout.html以了解有关视觉格式的更多信息。您也可以选择不使用可视格式并以编程方式描述约束。