collectionViewLayout doesn’t only contains static layout attributes like itemSize, sectionInset, etc. It also contains the dynamic layout info.
Dynamic layout info means
collectionViewLayout has frame info for every section and cell of the corresponding
For example, let’s say the
UIColllectionView A has one section and three cells, while
UICollectionView B has one section and two cells. If they share one
collectionViewLayout, the app will crash with an exception.
Because when A was loaded, the
collectionViewLayout will have three layouts for cells at the indexPath (0, 0), (0, 1) and (0, 3). But in B, there only have two cells in (0, 0) and (0, 1). So when
collectionViewLayout is applied to B, the layout for (0, 3) is applied to a cell which is not existed.