如何在 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 中创建此布局的主要内容,如果未能解决你的问题,请参考以下文章
为啥在 phpmyadmin 中创建此表会生成 #1064 错误?