【发布时间】:2012-11-13 10:33:53
【问题描述】:
我正在使用 UICollectionView 和 UICollectionViewFlowLayout。
我通过设置每个单元格的大小
collectionView:layout:sizeForItemAtIndexPath:
当从纵向切换到横向时,我想调整每个单元格的大小以完全适合 CollectionView 的大小,而不会在单元格之间留下填充空间。
问题:
1) 旋转事件后如何改变单元格的大小?
2) 而且,更好的是,如何使单元格始终适合整个屏幕大小的布局?
【问题讨论】:
-
followben 的回答目前已被接受,但它有一些问题:它会引发控制台错误,并且新尺寸的动画不会正确发生。请参阅我的答案以了解正确的实施方式。
-
@MichaelG.Emmons:如果集合视图一次只显示一个完整大小的单元格,您的答案会更好。在这种情况下,UIKit 抱怨旋转是有道理的,因为它会在调用
didRotateFromInterfaceOrientation之前查询sizeForItemAtIndexPath。但是,对于屏幕上有多个单元格的集合视图,在旋转之前使布局无效会导致在视图旋转之前出现令人讨厌的、可见的尺寸跳跃。在那种情况下,我相信我的答案仍然是最正确的实现。 -
@followben 同意每个人在不同的用例中都有自己的问题。但在这种情况下,OP 表示
I would like to adjust the size of each cell to **completely fit the size of the CollectionView**这正是我在回答中提出的解决方案。如果您可以在答案中包含我的解决方案,并记下哪种方法在哪种条件下对我来说效果最好。
标签: ios uicollectionview uicollectionviewcell