我有一个UICollectionView,我希望单元格总是显示器高度的一半,有时是宽度的一半,但有时是宽度的1/4。在下图中,我绘制了UICollectionView正在显示的内容。在风景中,我告诉它显示1/4宽度的单元格,然后是半个单元格,然后是另一个1/4,并再次重复。从理论上讲,屏幕上应该有6个细胞,但细胞最终都是分散的。我无法弄清楚我做错了什么。如果我将每个单元格放在一个尺寸上就可以正常工作,只需要有不同的尺寸。
这就是:
这就是我想要发生的事:
下面是设置布局和更改单个单元格大小的代码:
- (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;
}