我有垂直滚动的收藏夹视图。在此垂直集合视图的末尾,我有一个单元格内容,一个水平集合视图,它已经根据其内容动态地调整了高度大小(已禁用滚动),就像tag flow list一样。
从DynamicHeightCollectionView继承的水平集合视图
class DynamicHeightCollectionView: UICollectionView {
override func layoutSubviews() {
super.layoutSubviews()
if !__CGSizeEqualToSize(bounds.size, self.intrinsicContentSize) {
self.invalidateIntrinsicContentSize()
}
}
override var intrinsicContentSize: CGSize {
return contentSize
}
}
但是在第一次加载或更改方向时,contentSize等于0,然后正确显示。
我发现,contentSize = 0
第一次加载时,因为它什么都不包含,所以包含此水平集合视图的单元格不可见,这意味着不调用cellForItem。
我打算根据contentSize
中水平collectionView的collectionView(_ collectionView: UICollectionView,
layout collectionViewLayout: UICollectionViewLayout,
sizeForItemAt indexPath: IndexPath) -> CGSize
计算外部collectionView的像元高度。
那么如何在第一次加载时强制填充水平集合视图的内容,而该视图尚不可见?