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