ios 8(UITableViewCell):对于tableview单元格的内容视图,约束模糊地建议高度为零

wod*_*wod 6 objective-c uitableview autolayout ios8

我有一个使用自动布局约束的tableview,每个东西都在iOS 7中工作,但是当我在iOS 8中测试时,请给我以下警告

仅警告一次:检测到约束模糊地建议tableview单元格的内容视图的高度为零的情况.我们正在考虑无意中崩溃并使用标准高度.

在我对此问题进行深入调查后,我发现应该仅在iOS8的viewdidload中添加以下行

 self.tableView.rowHeight = UITableViewAutomaticDimension;

 self.tableView.estimatedRowHeight = 87;
Run Code Online (Sandbox Code Playgroud)

在那之后我仍然得到这个警告,并且单元格的高度不正确,这不是从故事板获取高度

有关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];
}
Run Code Online (Sandbox Code Playgroud)

Rud*_*vič 8

自动布局就在那一个上.从标签.CenterX.Top标签计算单元格的高度是不可能的.解决问题的一种方法是删除现有.CenterX约束并添加新.Bottom约束.这样,自动布局可以轻松计算单元格的高度.