ios - 更新 UICollectionViewCells 的动态高度
问题描述
确定包含多个文本视图的高度的推荐方法是什么,UICollectionViewCell
这些文本视图的高度取决于其中设置的文本内容?
由于 UICollectionView在确定的文本内容在计算单元格大小时未知sizeForItemAt
之前被调用。cellForItemAt
一种可能的方法是用类似的东西计算文本高度
func calculateEstimatedCellFrame(_ text:String) -> CGRect
{
let size = CGSize(width: 210, height: 1000)
let options = NSStringDrawingOptions.usesFontLeading.union(.usesLineFragmentOrigin)
return NSString(string: text).boundingRect(with: size, options: options, attributes: [NSAttributedString.Key.font: UIFont.systemFont(ofSize: 14)], context: nil)
}
但这在我目前的情况下似乎不切实际,特别是因为单元格的文本至少部分是从各种其他来源(部分来自 JSON 数据和本地化字符串)组装而成的。
使用约束似乎非常复杂,我不确定如何将它们应用于放置在其他文本视图之间的多个文本视图以设置其正确的约束值。
有没有更好的方法来计算每个单元格所需的高度?
解决方案
推荐阅读
- android - 导航抽屉和浮动按钮不能同时工作
- ios - 如何从苹果开发者帐户中删除密钥?
- php - 如何在 laravel 刀片模板中读取多级 JSON 值
- angular - AngularFireStorage 为每次上传返回未定义的 URL
- c++ - std map 如何知道使用 std 字符串的数据作为键
- wordpress - 将 WordPress 迁移到 https 和 docker
- javascript - 烧瓶 request.get.args - 缺少一个 arg
- python - 对熊猫中同一时间 bin 中的所有行进行分组
- javascript - 未捕获的类型错误:检查不是 HTMLInputElement.onclick 处的函数
- ios - 后台长时间运行的 BLE 扫描有时仅适用