UICollectionViewController 上自定义单元格设计的自定义布局

Posted

技术标签:

【中文标题】UICollectionViewController 上自定义单元格设计的自定义布局【英文标题】:Custom Layout for custom cell design on UICollectionViewController 【发布时间】:2013-07-27 05:27:37 【问题描述】:

我想为 Ipad 设计一个这样的页面:

我决定通过 UICollectionViewController 来实现它,我打算第一次使用 UICollectionViewController。 我想知道,UICollectionViewController 让我有不同的单元格布局?我该怎么做?

【问题讨论】:

如果你只有那些视图(不是这些视图的重复模式),那么我认为集合视图不是要走的路——你必须继承 UICollectionViewFlowLayout 来进行安排像那样(假设您显示的每个矩形都是不同的单元格)。将它们作为单独的视图添加到控制器的视图中会更容易。 @rdelmar 有无限的单元格,所以我认为将使用集合视图!第一个细胞比另一个大。谢谢,我尝试制作一个新的集合布局... 【参考方案1】:

是的,您可以为单元格设置不同的布局。

在您的 UICollectionView 中,您需要注册您将要使用的各种单元类:

[self registerClass:[Class1 class] forCellWithReuseIdentifier:@"Class1"];
[self registerClass:[Class2 class] forCellWithReuseIdentifier:@"Class2"];

然后在您的数据源委托中:

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

//无论你用什么逻辑来区分这两个类

cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Class1" forIndexPath:indexPath];

//或

cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Class2" forIndexPath:indexPath];

【讨论】:

我这样做了,但不起作用!它没有显示任何单元格 您是否让 CollectionView 与单个单元格类一起使用?此外,我同意 rdelmar 关于使用静态 UIView 而不是 UICollectionView 的评论,如果这些是您需要的唯一视图。 我使用了 nib 文件,所以要使用我的 nib 文件,我必须使用 [self.collectionView registerNib:[UINib nibWithNibName:@"MyCell" bundle:nil] forCellWithReuseIdentifier:@"CELL"];这显示了我的细胞,但这不是我的方法!我想我需要定义一个自定义布局来显示像附加图像一样的集合视图!

以上是关于UICollectionViewController 上自定义单元格设计的自定义布局的主要内容,如果未能解决你的问题,请参考以下文章

UISearchController 像 Instagram 探索选项卡

无法使用自动布局将简单的自行调整大小的集合视图单元格调整为标签大小