我是一名新的iOS开发人员。
最近我正在学习UICollectionView,我正在尝试将UICollectionViewLayout子类化。
我必须实现方法
- (NSArray的*)layoutAttributesForElementsInRect:(的CGRect)RECT
PS。我认为这种方法可能更容易理解
- (UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)path
因为indexPath是有限且有限的,所以在特定的indexPath中配置单元格是合理的。
但是矩形可能是无限的,我不知道这个矩形来自哪里。
答案 0 :(得分:1)
创建布局子类时,必须覆盖这两种方法。
layoutAttributesForItemAtIndexPath
告诉集合 - 查看特定索引路径上单元格的布局属性。您只能将它用于细胞。
系统调用layoutAttributesForElementsInRect
,其中包含一个矩形,其中包含要显示在其中的所有“视觉元素” - 单元格,补充视图或装饰视图。将其视为即将展示的集合视图的一部分。它告诉集合视图哪些属性包含在矩形中,因此它可以创建相应的视图。
基本上,您可以在这些函数中执行所有布局属性计算(框架,变换等),或者您可以提前准备所有属性(您可以在prepareLayout
方法中执行此操作)并返回正确的缓存布局属性。