如何使用 2 个或更多自定义单元格创建自定义 UICollectionView?

Posted

技术标签:

【中文标题】如何使用 2 个或更多自定义单元格创建自定义 UICollectionView?【英文标题】:How to create customized UICollectionView with 2 or more custom cells? 【发布时间】:2015-10-22 06:39:10 【问题描述】:

在我的项目中,我想将UICollectionView 与自定义单元格一起使用,我使用自定义单元格创建了集合视图,但我想在我的项目中使用不同大小的自定义单元格我遵循了一些教程,但我没有正确理解它,下面我附上了我真正寻找的收藏视图的示例屏幕截图。

【问题讨论】:

附加图像是当前实现还是需要? 看起来和@Hemant 的屏幕截图一样 github.com/cp-satish-v/MosaicLayoutDemo 【参考方案1】:

一种可能的创建方法是使用sizeForItemAtIndexPath,然后返回Cell 的大小。以下是 Github 上的一些有用链接,它们正是您想要的:

    RF Quilt Layout Mosaic Layout

与第一张图片一样,一些单元格有按钮,而另一些则没有。为此,您必须创建自定义单元格,即一个带有按钮的自定义单元格和一个没有按钮的自定义单元格。在您的 cellForItemAtIndexPath 函数中,您可以使用一些 if-else 条件定义它们。

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath

   if(firstCellConditionMet)
    
        CustomCell1 *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"CellIdentifier" forIndexPath:indexPath];

        //Your code

        return cell;
    
    else
        CustomCell2 *cell2 = [collectionView dequeueReusableCellWithReuseIdentifier:@"CellIdentifier2" forIndexPath:indexPath];

         //Your Code

         return cell2;
        
    

【讨论】:

谢谢@Munahil,我会努力的:) 检查第一个屏幕截图,他们添加了单独的按钮,我如何在 collectionview 中添加这些东西 我认为这足以满足要求。 我仍然对如何使用自定义单元格应用 RF 被子布局或马赛克布局或瀑布布局感到困惑? 你有什么困惑?【参考方案2】:

这可以通过Collection View Flow Layout来实现。您可以创建一个流布局,该布局将处理不同的行以及一行中有多少个元素。看看 Ray Wenderlich 的教程here。

【讨论】:

【参考方案3】:

如果是你想要的

https://www.youtube.com/watch?v=LFBTbmvFR30

尝试对集合视图使用自定义布局

https://github.com/bryceredd/RFQuiltLayout

这是现成的决定,它很容易使用,如果有问题,会回答你,现在我做了非常相似的收集...但在 iPad 上随机单元格大小>>>>

最酷的是,通过这种实现,如果您使用约束,您将能够对所有单元格大小使用一个类。如果您对此认识有疑问,我可以给您我的测试项目。 祝兄弟好运。

【讨论】:

【参考方案4】:

我认为这很容易。你可以继承UICollectionViewFlowLayout

【讨论】:

你能进一步解释一下如何做到这一点吗? SO 通常也鼓励清晰的语法,因为这里有很多非英语母语的人,如果我们都尽可能清楚地表达,他们更容易理解。也只是因为它使网站更容易理解,因此更有用。 你能给我解释一下吗@sixleaves

以上是关于如何使用 2 个或更多自定义单元格创建自定义 UICollectionView?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 MessageKit 创建自定义单元格?

如何自定义 Material ui 表格单元格,以便其中的文本将占用两行而不是一行?

如何将 SwipeCellKit 的自定义滑动功能用于从 .xib 文件创建的自定义单元格?

如何在一个 tableView 上提供超过 2 个自定义单元格以进行聊天

如何禁用自定义单元格中的按钮?

创建自定义 UITableViewCell