私はコレクションビューをコレクションビューにネストしています。コンテンツに基づいて動的にセルサイズを変更しようと試みたのは、子コレクションの高さのコンセントを作成し、コンテンツサイズを取得した後に定数を変更することです。CollectionViewスクロール後のセルのサイズが変わる - AutoLayout
これは私のIB制約のスクリーンショーで、ハイライト1を使用しています。
だから私は、高さを一定と4つの側面に親のセルに拘束子コレクションビュー(アクアのカラーボックスを)持っています。
子コレクションビューを保持している私のカスタムセルクラスでは、私は次のように高さを設定しています:
let contentHeight = innerCollectionView.collectionViewLayout.collectionViewContentSize.height
innerCollectionHeight.constant = contentHeight
そして、のviewDidLoadで親コレクションビューを保持している私のビューコントローラクラスで、私は推定を指定しますアイテムサイズ:
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内部