如何在 CollectionView 中创建此布局

Posted

技术标签:

【中文标题】如何在 CollectionView 中创建此布局【英文标题】:How to Create This Layout in CollectionView 【发布时间】:2017-01-06 07:17:23 【问题描述】:

您好,我想知道我们如何在 collectionview 中实现此布局,我们需要放置图像或调整单元格大小我点击此链接https://www.raywenderlich.com/107439/uicollectionview-custom-layout-tutorial-pinterest,但在此他们正在传递项目的图像大小,因此显示不同大小项目基于图像大小,但我喜欢在图像 中修复一些这样的布局@

任何帮助将不胜感激

提前致谢

【问题讨论】:

现在假设您只有 1 或 2 张图像,那么您设置了什么样的流程? @HimanshuMoradiya 如果我只有两个,它应该只显示两个,单元格大小应该固定为一半,一半应该分开,我不知道如何用两个三个布局固定它是什么这样做的正确程序 你必须设置collectionviewlayout委托方法来创建像这样宽度的视图。 如果你想要这个布局而不考虑内容,为什么不创建一个自定义的UIView,在该布局中已经定位了五个UIImageViews?然后,如果您需要多组它,只需将该自定义 UIView 添加到 tableView/collectionView 的单元格中。 @BenOng 如果我想要两个或三个不同的布局应该如何完成 【参考方案1】:

使用this 很棒的控件来实现您的目标。

使用起来非常简单。

将以下文件添加到您的项目中

customLayout.h
customLayout.m

在控制器中导入 customLayout 以供使用

#import "customLayout.h"

并使用

<customLayoutDelegate> 

到你的控制器。

在你的 viewDidLoad 方法中编写简单的代码

 columncount=2; // How much Columns you required
    miniInteriorSpacing=10; // Minimum Spacing you required

    if(![collectionView.collectionViewLayout isKindOfClass:[customLayout class]])
        customLayout *layout = [customLayout new];
        layout.delegate=self;
        layout.columnCount=columncount;

        collectionView.collectionViewLayout = layout;

        [collectionView reloadData];
     

为了获取标签的高度,我写了一个方法。

-(float)calculateHeightForLbl:(NSString*)text width:(float)width; 

【讨论】:

我必须加载不同的单元格,例如 2 张图片一种布局,4 张图片一种布局,6 张图片一种布局如何动态实现它我需要用 xibs 做吗 是的,您必须根据您的要求创建单独的 xib。

以上是关于如何在 CollectionView 中创建此布局的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android 中创建此模板? [关闭]

如何在Android活动中创建此自定义弹出消息?

为啥在 phpmyadmin 中创建此表会生成 #1064 错误?

可以在 Rails 中创建此重定向路线吗?

php 在module_name / views / your_context目录中创建此文件

如何在 Qt 中动态添加选项卡?