首页 > 解决方案 > 更新 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 数据和本地化字符串)组装而成的。

使用约束似乎非常复杂,我不确定如何将它们应用于放置在其他文本视图之间的多个文本视图以设置其正确的约束值。

有没有更好的方法来计算每个单元格所需的高度?

标签: iosswiftuicollectionviewheightuicollectionviewcell

解决方案


推荐阅读