可以直接在UICollectionView
上致电invalidateLayout
,也可以实施shouldInvalidateLayoutForBoundsChange:
并返回YES
。
现在我发现在我的实现中两者都有所不同。 invalidateLayout
按预期在我的情况下工作,但shouldInvalidateLayoutForBoundsChange:
行为不同,以便布局看起来被破坏。详细地说,在方向更改时,单元格的宽度不会更新,因此minimumLineSpacing
和minimumInteritemSpacing
不同,这对我的布局不起作用。特别是,由于没有更新宽度,连续项目的数量是错误的。
如果我在shouldInvalidateLayoutForBoundsChange:
返回YES
时调用文档invalidateLayoutWithContext:
。但是,这种方法的工作方式与直接调用invalidateLayout
?