Ios UICollectionViewCell具有灵活的宽度

Ios UICollectionViewCell具有灵活的宽度,ios,uicollectionview,Ios,Uicollectionview,我有一个基本的集合视图,具有垂直滚动、分区和每个分区中可变数量的单元格。当我需要开始下一行单元格时,我需要调整每个单元格的宽度,以填充最多4个单元格的视图可用宽度 如果剖面有1、2、3或4个单元,则其宽度应分别为视图宽度的1/1、1/2、1/3或1/4。超过4个单元格的部分应在一行中拉伸4个单元格,并在另一行上继续 我是否需要为此为UICollectionViewFlowLayout创建子类,或者可以在UICollectionViewController类中处理它,以及如何处理 您应该使用以下两

我有一个基本的集合视图,具有垂直滚动、分区和每个分区中可变数量的单元格。当我需要开始下一行单元格时,我需要调整每个单元格的宽度,以填充最多4个单元格的视图可用宽度

如果剖面有1、2、3或4个单元,则其宽度应分别为视图宽度的1/1、1/2、1/3或1/4。超过4个单元格的部分应在一行中拉伸4个单元格,并在另一行上继续

我是否需要为此为UICollectionViewFlowLayout创建子类,或者可以在UICollectionViewController类中处理它,以及如何处理


您应该使用以下两种方法来更改一行中的列

 - (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);
}

您必须使用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);
}
以及可以在框架文件检查器中设置的大小

是的,这给了我想要的。谢谢