我在滚动视图中有一个tableview,我需要tableview来显示整个内容,为此我将tableview的高度约束设置为等于其内容大小。
self.dealsTableView.estimatedRowHeight = 40;
self.dealsTableView.rowHeight = UITableViewAutomaticDimension;
self.dealsTableView.delegate = self;
self.dealsTableView.dataSource = self;
[self.dealsTableView reloadData];
[self.dealsTableView layoutIfNeeded];
[self.view layoutIfNeeded];
self.dealTableViewHeightConstraint.constant = self.dealsTableView.contentSize.height;
[self.view layoutIfNeeded];
[self.view layoutSubviews];
[self.dealsTableView layoutIfNeeded];
始终返回的contentSize.height少于预期导致视图中断。
如果我手动添加几个像素,
self.dealTableViewHeightConstraint.constant = self.dealsTableView.contentSize.height + 50;
它起作用,但当然,这在所有情况下都不起作用。 有什么想法吗?
答案 0 :(得分:0)
好的,这是一个奇怪的解决方案,但这是有效的。
解决方案是在设置实际内容大小之前设置高度约束。
self.dealTableViewHeightConstraint.constant = 40 * self.business.dealArray.count;
self.dealTableViewHeightConstraint.constant = self.dealsTableView.contentSize.height;