2

我需要计算包含多行环绕文本的 UITableViewCell 的高度。到目前为止,我找不到 100% 准确的方法来做到这一点。此外,我目前使用的技术在很大程度上依赖于固定值:

NSString *cellText;    
cellText = @"Very long multi line text in this String ...";
UIFont *cellFont = [UIFont fontWithName:@"Helvetica" size:14.0];
CGSize constraintSize = CGSizeMake(280.0f, MAXFLOAT);
CGSize labelSize = [cellText sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:NSLineBreakByWordWrapping];
return labelSize.height + 32;

仅在这几行中使用的固定值:

  • 字体大小 (14)
  • 字体类型(Helvetica)
  • CGSize, 宽度 (280.0f)
  • 我发现需要随机填充值 (32)

有没有一种很好的方法可以以动态获取和计算所有这些固定值的方式重写它?

这将有助于使布局更具响应性和代码可重用。我很欣赏任何最佳实践。

4

1 回答 1

1

您的代码看起来不错,但您错过了适合单元格的计算。您需要在单元格(父视图)中添加标签的最顶部位置和标签的最底部位置。

就这样计算

 return labelSize.height + 2*yourLabelInCell.frame.origin.y  //here label's topmost postion and label's bottommost postion in cell added

标签将在单元格中适当调整。

于 2012-10-22T05:53:52.597 回答