我已经在 tableview 的内容中给了 textview 前导和尾随。我想动态计算Tableviewcell 的高度。高度计算有时工作正常,但有时不适用于 5c 等特定设备。
我使用以下代码来估计文本的高度:
func estimateFrameForText(text: String) -> CGRect {
let size = CGSize(width: self.view.frame.size.width, height: 10000000)
let options = NSStringDrawingOptions.usesFontLeading.union(.usesLineFragmentOrigin)
return NSString(string: text).boundingRect(with: size, options: options, attributes: [NSFontAttributeName: UIFont.init(name: FontStyle.FontName.kDefault, size: 15.0)!], context: nil)
}
这里重要的是文本是HTML文本,我已经把它转换成纯文本了。然后将该纯文本传递给上述函数。
最佳答案
- 在 tableview 单元格的内容中为 textview 提供顶部、底部、前导和尾部。
- 禁用 TextView 的滚动。然后,此方法有效。它通常用于聊天单元格,其中我们希望自动检测链接、电话号码的数据属性减去 uitextview 的滚动。
使用表格 View 的以下方法设置自动行高计算
func tableView(_ tableView: UITableView,heightForRowAt indexPath: IndexPath) -> CGFloat { return UITableViewAutomaticDimension } func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat { return 100 }
关于ios - UITableViewCell 的动态高度计算取决于 TextView 的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42431242/