Ios CollectionView单元格在滚动后更改大小-自动布局

Ios CollectionView单元格在滚动后更改大小-自动布局,ios,swift,autolayout,uicollectionview,constraints,Ios,Swift,Autolayout,Uicollectionview,Constraints,我有一个嵌套在集合视图中的集合视图。我尝试根据内容动态更改单元格大小所做的是为子集合的高度创建一个出口,并在获得内容大小后更改其常量 这是我的IB限制的屏幕显示,我使用高亮显示的高度 因此,我将子集合视图(aqua的颜色框)约束到父集合的四个边上的单元格,并保持高度不变 在保存子集合视图的自定义单元格类中,我将高度设置为: let contentHeight = innerCollectionView.collectionViewLayout.collectionViewContent

我有一个嵌套在集合视图中的集合视图。我尝试根据内容动态更改单元格大小所做的是为子集合的高度创建一个出口,并在获得内容大小后更改其常量

这是我的IB限制的屏幕显示,我使用高亮显示的高度

因此,我将子集合视图(aqua的颜色框)约束到父集合的四个边上的单元格,并保持高度不变

在保存子集合视图的自定义单元格类中,我将高度设置为:

    let contentHeight = innerCollectionView.collectionViewLayout.collectionViewContentSize.height
        innerCollectionHeight.constant = contentHeight
然后在保存viewDidLoad中父集合视图的my view controller类中,我使用以下命令指定估计的项目大小:

    let flowLayout = outerCollectionView.collectionViewLayout as! UICollectionViewFlowLayout
        flowLayout.estimatedItemSize = CGSize(width: view.frame.width - 20, height: view.frame.height / 4)
        flowLayout.minimumLineSpacing = 10
        flowLayout.sectionInset = UIEdgeInsets(top: 0, left: 10, bottom: 10, right: 10)
结果是,在初始加载时,所有内容都正确显示,但是在滚动具有2行数据(绿色数字图标)的顶部单元格后,会将自身调整为与其他单元格相同。您可以在下面的gif中看到,子集合视图(浅绿色框)的大小仍然相同,是父单元格(橙色框)的大小减小了

我在这里不知道该怎么办

返回到完整大小的位只是gif重置,实际上并没有这样做。

在cellForItemAt(其中outerCell是通常声明的单元格)内重新声明委托,然后重新加载子集合:

outerCell.setCollectionViewDataSourceDelegate(dataSourceDelegate: self, forItem: indexPath.item)
outerCell.innerCollectionView.reloadData()
outerCell.innerCollectionView.layoutIfNeeded()