带有可变单元格的UICollectionView奇怪地显示它们

时间:2012-11-05 07:07:26

标签: ios uicollectionview

我有一个UICollectionView,我希望单元格总是显示器高度的一半,有时是宽度的一半,但有时是宽度的1/4。在下图中,我绘制了UICollectionView正在显示的内容。在风景中,我告诉它显示1/4宽度的单元格,然后是半个单元格,然后是另一个1/4,并再次重复。从理论上讲,屏幕上应该有6个细胞,但细胞最终都是分散的。我无法弄清楚我做错了什么。如果我将每个单元格放在一个尺寸上就可以正常工作,只需要有不同的尺寸。

这就是:http://i.imgur.com/5Ifac.jpg

这就是我想要发生的事:http://i.imgur.com/eAX0g.jpg

下面是设置布局和更改单个单元格大小的代码:

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
    if ([bigCells containsObject: indexPath.row]) {
        return CGSizeMake((CollectionView.frame.size.width/2), (CollectionView.frame.size.height/2));
    } else {
        return CGSizeMake((CollectionView.frame.size.width/4), (CollectionView.frame.size.height/2));
    }
}

- (void)prepareLayout {
    self.itemSize = CGSizeMake((self.collectionView.frame.size.width/2), (self.collectionView.frame.size.height/2));

    self.scrollDirection = UICollectionViewScrollDirectionHorizontal;
    self.minimumInteritemSpacing = 0;
    self.minimumLineSpacing = 0;
}

0 个答案:

没有答案