2013-05-03 106 views
1

我有一个UICollectionView IB与一堆不同的原型单元格。如何设置原型的大小UICollectionViewCell

我试图给每个单元格在IB中的自己的大小,以便当我用dequeueReusable ...实例化它时,它将具有该大小。然而我发现,不管你的单元格中的设置是什么,你的collectionview对它内部使用的所有单元格都使用自己的单元格大小。

这是一个错误?如果不是,为所有单元格设置自定义大小的最佳方式是什么?

我也曾尝试:

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

    NSString* cellIdentifier = self.cellIdentifier; 
    ImageCell* cell = [collectionView dequeueReusableCellWithReuseIdentifier:self.cellIdentifier forIndexPath:indexPath]; 

    return [cell sizeOfCell]; 
} 

但出于某种原因,在此功能中出列单元格时,应用程序崩溃。

我已经分类了所有的原型单元,并有一个函数让它们返回它们自己的大小。有没有其他方法可以用你在IB中给它的标识符来实例化一个单元格?

回答

7

IB中的单元格大小(用于集合视图和表视图)仅用于布局目的,它在运行时对大小没有影响。您应该实现UICollectionViewDelegateFlowLayout方法collectionView:layout:sizeForItemAtIndexPath:为每个项目返回正确的大小。