我有一个使用自动布局约束的tableview,每个东西都在iOS 7中工作,但是当我在iOS 8中测试时,请给我以下警告
仅警告一次: 检测到约束模糊地建议tableview单元格内容视图的高度为零的情况。我们正在考虑无意中崩溃并使用标准高度。
在我对此问题进行深入调查后,我发现应该只在iOS8的viewdidload中添加以下行
self.tableView.rowHeight = UITableViewAutomaticDimension;
self.tableView.estimatedRowHeight = 87;
之后我仍然得到这个警告,并且单元格的高度不正确,这不是从故事板中获取高度
有关UITableViewCell的更多信息,请在下面找到我们对内容视图单元格的约束
-(void) updateConstraints {
[super updateConstraints];
if(!didSetupConstraints ) {
didSetupConstraints = YES;
[self.contentView removeConstraints:self.contentView.constraints];
// Interval Title
//Leading
constraint = [NSLayoutConstraint constraintWithItem:self.intervalTitle attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeCenterX multiplier: 1.0 constant:0.0];
[self.contentView addConstraint:constraint];
//Top
constraint = [NSLayoutConstraint constraintWithItem:self.intervalTitle attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.marketLocationTitle attribute:NSLayoutAttributeTop multiplier:1.0 constant:0.0];
[self.contentView addConstraint:constraint];
}
答案 0 :(得分:8)
自动布局就是那个。对于标签,无法从.CenterX
和.Top
计算单元格的高度。解决此问题的一种方法是删除现有的.CenterX
约束并添加新的.Bottom
约束。这样,自动布局可以轻松计算单元格的高度。