我有一个基本的集合视图,每个部分都有垂直滚动,部分和可变数量的单元格。当需要启动下一行单元格时,我需要调整每个单元格的宽度以填充最多4个单元格的可用宽度。
如果某个部分有1,2,3或4个单元格,则它们的宽度应分别为视图宽度的1 / 1,1 / 2,3 / 3或1/4。具有超过4个单元格的部分应该在一行中拉伸4个单元格并继续在另一行上。
我是否需要为此子类化UICollectionViewFlowLayout,或者我可以在UICollectionViewController类中处理它以及如何处理它?</ p>
答案 0 :(得分:3)
您应该使用以下两种方法来更改一行中的列
- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section
{
return UIEdgeInsetsMake(5,5,0,5);
}
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{
return CGSizeMake(75, 75);
}
答案 1 :(得分:0)
您必须使用UICollection视图委托方法为CollectionCell提供自定义设计
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section {
return 2.0;
}
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section {
return 2.0;
}
- (UIEdgeInsets)collectionView:
(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
return UIEdgeInsetsMake(0,5,0,5);
}
您可以在“框架文件”检查器中设置和大小