UICollectionView:UICollectionViewCell对象在sizeForItemAtIndexPath中始终为null

时间:2012-11-05 11:41:35

标签: ios6 uicollectionview uicollectionviewcell

我有一个包含不同自定义单元格的集合视图。

这些单元格包含不同大小的内容。

单元格在Storyboard中定义,因此代码中不需要注册。

我现在要做的就是根据内容改变委托方法的大小:

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {

id cellAtIndexPath = [collectionView cellForItemAtIndexPath:indexPath];

NSLog(@"The cell: %@", cellAtIndexPath);

...
e.g. calling sizeToFit methods and cumulating the sizes of the cells' subviews
...

}

对于每个单元格都按预期调用Method,但无论我尝试什么,cellAtIndexPath总是返回NULL。 所以我无法在indexPath或其内容视图中访问单元格对象。

为什么我无法访问单元格对象的任何建议?

1 个答案:

答案 0 :(得分:11)

集合视图的流布局对象调用collectionView:layout:sizeForItemAtIndexPath方法。布局是在之前询问单元格的大小将单元格添加到集合视图中。您必须“自己”计算所需的单元格大小并将其返回。