对于新的 iOS 8,有一种新方法可以让这一切变得简单。
有一个新参数可以根据您的自动布局约束计算单元格高度。这是UITableViewAutomaticDimension
. 您可以在viewWillAppear
视图控制器的方法中使用它。
目标 C:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
self.tableView.estimatedRowHeight = 70.0; // for example. Set your average height
self.tableView.rowHeight = UITableViewAutomaticDimension;
[self.tableView reloadData];
}
迅速:
override func viewWillAppear(animated: Bool) {
self.tableView.estimatedRowHeight = 70 // for example. Set your average height
self.tableView.rowHeight = UITableViewAutomaticDimension
self.tableView.reloadData()
}
在你的例子中工作得很好,就像你想要的那样。至于我,我只在 reloadData()viewDidLoad
中添加高度的东西并留下。viewWillAppear
还有有用的来源。
来自文档:The default value of rowHeight is UITableViewAutomaticDimension.
我暂时保留代码原样,但请记住,您不需要在 iOS 8+ 中设置行高。
您需要做的主要事情是明确设置所有约束,例如前导、尾随、顶部和底部。先试试看,上面不加任何代码行。