源代码:My code
我需要针对不同长度的文本创建具有动态大小的布局,为此需要在tableview单元格内使用collectionview
我创建了具有自定义collectionview单元格的自定义collectionview。我已经使用带有预备重写方法的CustomFlowLayout(UICollectionViewLayout的子类)来计算每个单元格的大小。
我能够实现动态大小的collectionview单元格,现在我需要根据其内容大小使collectionview的高度动态化,截至目前,我已经将collectionview的高度限制为200,并将其设置为固定。
需要有关如何基于其内容动态设置collectionview高度并同时调整父tableview单元格以适合其内容的帮助
下面是我想要实现的屏幕截图,非常感谢!
答案 0 :(得分:0)
在您的CustomFlowLayout(它是UICollectionViewLayout的子类)中,您需要覆盖collectionViewContentSize,如下所示。
计算您的内容高度并将其返回。
override public var collectionViewContentSize: CGSize {
return CGSize(width: collectionViewWidth, height: contentHeight)
}
希望有帮助!
答案 1 :(得分:0)
尝试使用调整视图高度
if heightConstraint.constant != collectionView.contentSize.height {
heightConstraint.constant = collectionView.contentSize.height
view.updateConstraintsIfNeeded()
}
您可以将tableview行高设置为自动。如果您的约束正确,则tableview单元格将自动调整其高度
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableView.automaticDimension
}
答案 2 :(得分:0)
我已经在这里回答了这个问题:https://stackoverflow.com/a/53102033/7388630
您可以全面工作并说明代码示例here