Swift 动态UITableViewCell内的动态UICollectionView
我有一个集合视图,它是动态的,可以包含任意数量的单元格。它位于表格视图单元格内Swift 动态UITableViewCell内的动态UICollectionView,swift,uitableview,dynamic,uicollectionview,Swift,Uitableview,Dynamic,Uicollectionview,我有一个集合视图,它是动态的,可以包含任意数量的单元格。它位于表格视图单元格内 override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { return UITableViewAutomaticDimension } 我的表格视图已正确配置为动态,因为其他单元格工作正常,因此不存在问题 这是我目前拥有的。。。如您所见,下面没有收藏视图 这就
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)
这对我来说只是部分起作用。当tableView首次加载时,单元(包含DynamicCollectionView)不会动态调整其高度。只有在滚动tableView并返回单元格后,它才能正确调整其高度。