【问题标题】:Sizing a UITableViewCell based on its contained UITextView根据包含的 UITextView 调整 UITableViewCell 的大小
【发布时间】:2013-07-09 23:34:49
【问题描述】:
目前我正在开发一个 iOS 应用程序,我在表格视图单元格中显示大量文本。有问题的文本存储在NSAttributedString 中,可以跨越无限多行,并且可以包含图像等内联附件。这里的问题是我似乎无法准确测量给定单元格的高度以传递给表格视图。是否有一种高效、简单的方法来计算 UITextView 中包含的任意复杂 NSAttributedString 的高度?
【问题讨论】:
标签:
ios
uitableview
uitextview
【解决方案1】:
你可以调用boundingRectWithSize:options:context:方法来查看它的大小。
[attributedString boundingRectWithSize:CGSizeMake(320.0f, CGFLOAT_MAX)
options:NSStringDrawingUsesLineFragmentOrigin
context:nil];
您可以将 320.0f 替换为文本视图的预期宽度。
参考:NSAttributedString UIKit Additions Reference
作为脚注,NSString 列出了类似的类别 here。
【解决方案2】:
在我遇到免费的Sensible TableView 框架之前,我曾多次尝试失败。该框架有一个他们称之为 TextViewCell 的东西,它会根据里面的文本自动调整大小。强烈推荐。