我有一个带有以下AutoLayout的自定义单元格:
NSMutableArray *constraints = [NSMutableArray new];
[constraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-10-[descriptionLabel]-35-|" options:0 metrics:nil views:views]];
[constraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-10-[descriptionLabel]-10-|" options:0 metrics:nil views:views]];
[self.contentView addConstraints:constraints];
在我的tableViewDelegate中,heightForRowAtIndexPath:
的计算如下:
return [cell.descriptionLabel systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height + 20;
不幸的是,当我的文本换行时它不起作用 - 它只适用于没有包装发生的文本的单元格。我错过了什么?
答案 0 :(得分:2)
当我第一次在iOS7中遇到这个问题时,我已经尝试了所有可能的方法来正确估计包装或归属文本的大小。
似乎唯一准确的方法是sizeThatFits:
label.text = @"...";
CGSize s = [label sizeThatFits:CGSizeMake(label.frame.size.width, CGFLOAT_MAX)];