Ios6 UICollectionView:UICollectionViewCell对象在sizeForItemAtIndexPath中始终为空

Ios6 UICollectionView:UICollectionViewCell对象在sizeForItemAtIndexPath中始终为空,ios6,uicollectionview,uicollectionviewcell,Ios6,Uicollectionview,Uicollectionviewcell,我有一个包含不同自定义单元格的集合视图 这些单元格包含大小不同的内容 单元在故事板中定义,因此无需在代码中注册 我现在只想根据内容更改委托方法中的大小: - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { id cellAt

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

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

单元在故事板中定义,因此无需在代码中注册

我现在只想根据内容更改委托方法中的大小:

- (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
...

}
该方法按预期为每个单元格调用,但cellAtIndexPath始终返回NULL,无论我尝试了什么。 因此,我无法在indexPath或其内容视图上访问cell对象


有什么建议说明我为什么不能访问单元格对象吗?

集合视图的流布局对象调用
集合视图:布局:sizeForItemAtIndexPath
方法。布局要求在将单元格添加到集合视图之前的某个时间。您必须“自己”计算所需的单元格大小并返回。

谢谢!因此,从这个角度来看,不可能根据子视图设置不同的单元高度(通常调用sizeToFit来计算它)?是否不可能根据单元格内容“调整”单元格大小?例如,对于UILabel,您必须按行和文本长度计算高度。这是非常不准确的,对。如果单元大小取决于其内容,则可以找到计算单元大小的方法,但不能依赖于单元视图。(例如,
NSString
提供了获取文本维度的方法。)这既愚蠢又不幸。。。如果您请求数据源获取一个尚不存在的单元格,是否
UITableView
转到该数据源并获取该单元格?