我有动态的集合视图,并且可以包含任意数量的单元格。它位于表格视图单元格内。
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
我的表格视图已正确配置为动态,因为其他单元格工作正常,因此问题不存在。
以下是我目前的情况......正如您所看到的,下面没有集合视图
这是我想要的结果...... (在集合视图上强制高度限制)
我已正确配置集合视图的所有方面的约束,因为当我提供修复高度约束时它会起作用。但这打败了动态集合视图的对象......
我已将出口链接到 UICollectionViewFlowLayout 并设置估算的单元格大小,并为上的单元格提供正确约束标签在内部,如我在强制高度限制的图像中所示。
答案 0 :(得分:2)
为collectionView创建一个子类,并覆盖internalContentSize。
class DynamicCollectionView: UICollectionView {
override func layoutSubviews() {
super.layoutSubviews()
if !__CGSizeEqualToSize(bounds.size, self.intrinsicContentSize) {
self.invalidateIntrinsicContentSize()
}
}
override var intrinsicContentSize: CGSize {
return collectionViewLayout.collectionViewContentSize
}
}
在“界面”构建器中,将您的collectionView的类更改为DynamicCollectionView(子类UICollectionView)。
设置UICollectionViewFlowLayout的估计单元格大小。
flowLayout.estimatedItemSize = CGSize(width: 1,height: 1)