1

我有一个 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;
}
4

0 回答 0