当内容包含其他动态调整大小的UICollectionView时,如何获取UICollectionViewCell的高度?

时间:2019-07-12 02:49:14

标签: ios swift uicollectionview uicollectionviewcell

我有垂直滚动的收藏夹视图。在此垂直集合视图的末尾,我有一个单元格内容,一个水平集合视图,它已经根据其内容动态地调整了高度大小(已禁用滚动),就像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的像元高度。

那么如何在第一次加载时强制填充水平集合视图的内容,而该视图尚不可见?

0 个答案:

没有答案