【问题标题】:Change Vertical Spacing of CollectionView Cell更改 CollectionView 单元格的垂直间距
【发布时间】:2015-08-28 02:21:44
【问题描述】:

我正在使用 UICollectionView 并像这样在集合视图的委托方法中更改项目的大小

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.

    lastIndex = 0;
    layoutDiff = 4;
}


- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
    if(indexPath.row == (lastIndex + layoutDiff) - 1){
        layoutDiff = (layoutDiff == 4)?5:4;
        lastIndex = indexPath.row + 1;
        return CGSizeMake(213.2, 213.2);
    }

    return CGSizeMake(106.6, 106.6);
}

这是我当前的屏幕。

以及下面的所有单元格都遵循这种行为,这意味着我想要的模式就像一个集合视图项变大,这取决于我想要让它变大但我不想要这个空间的逻辑。我认为如果那里没有空间,那么一切都会正确。有人可以帮忙吗?

【问题讨论】:

    标签: ios objective-c uicollectionview


    【解决方案1】:

    FlowLayout 对此无能为力。

    您必须实现 UICollectionLayout 的子类。

    这里有一些关于自定义集合视图布局的文章。

    自定义集合视图布局。

    https://www.objc.io/issues/3-views/collection-view-layouts/

    知道何时子类化流布局 https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/CollectionViewPGforIOS/UsingtheFlowLayout/UsingtheFlowLayout.html#//apple_ref/doc/uid/TP40012334-CH3-SW4

    【讨论】:

    • 我已经尝试了 url,我已经为我的要求创建了自定义布局,并且我已经分配了值。现在我被困在我需要获取 indexPathsOfItemsInRect 的第一个函数上。我想不通。但感谢您的参考网址。正在研究它们。
    • 如果您觉得我的回答有帮助...采纳它..谢谢。
    • 其实我的计算是正确的,这对我帮助很大。 github.com/ra1028/RACollectionViewReorderableTripletLayout 我刚刚用我的逻辑替换了框架更改代码,用我的代码替换了集合视图内容大小更改逻辑。谢谢你为我指明了正确的方向。