iOS7,在CollectionView中,何时调用此方法? layoutAttributesForElementsInRect:

时间:2015-07-23 16:03:05

标签: ios objective-c xcode ios7 uiview

我是一名新的iOS开发人员。

最近我正在学习UICollectionView,我正在尝试将UICollectionViewLayout子类化。

我必须实现方法

  

- (NSArray的*)layoutAttributesForElementsInRect:(的CGRect)RECT

问题

我不知道这个矩阵来自哪里?在这种情况下,这个矩形会传递给我吗?

PS。我认为这种方法可能更容易理解

- (UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)path

因为indexPath是有限且有限的,所以在特定的indexPath中配置单元格是合理的。

但是矩形可能是无限的,我不知道这个矩形来自哪里。

1 个答案:

答案 0 :(得分:1)

创建布局子类时,必须覆盖这两种方法。

layoutAttributesForItemAtIndexPath告诉集合 - 查看特定索引路径上单元格的布局属性。您只能将它用于细胞。

系统调用layoutAttributesForElementsInRect,其中包含一个矩形,其中包含要显示在其中的所有“视觉元素” - 单元格,补充视图或装饰视图。将其视为即将展示的集合视图的一部分。它告诉集合视图哪些属性包含在矩形中,因此它可以创建相应的视图。

基本上,您可以在这些函数中执行所有布局属性计算(框架,变换等),或者您可以提前准备所有属性(您可以在prepareLayout方法中执行此操作)并返回正确的缓存布局属性。

相关问题