1

我有一个具有以下自动布局的自定义单元格:

    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;

不幸的是,当我的文本换行时它不起作用 - 它仅适用于带有没有发生换行的文本的单元格。我错过了什么?

4

1 回答 1

2

当我第一次在 iOS7 中遇到这个问题时,我尝试了所有可能的方法来正确估计包装或属性文本的大小。

似乎唯一准确的方法是sizeThatFits:

label.text = @"...";
CGSize s = [label sizeThatFits:CGSizeMake(label.frame.size.width, CGFLOAT_MAX)];
于 2013-10-28T08:38:35.850 回答