使用单个 XIB 和类创建多个 collectionviewcells

Posted

技术标签:

【中文标题】使用单个 XIB 和类创建多个 collectionviewcells【英文标题】:Create multiple collectionviewcells with single XIB and class 【发布时间】:2016-07-14 08:18:26 【问题描述】:

我已经在 XIB 中创建了自定义单元格的基本设计,其中包含单元格可以拥有的所有视图。说,我有三个子视图,并试图通过隐藏各个单元格的每个视图来创建三个不同的单元格。但是,当 cell1 在应该出现的位置上重用 cell2 时,我的自动布局约束会更新,但不会反映 UI 中的更改。但是,当它第一次创建所有不同的单元格时,这些约束更改会起作用。

任何人都可以告诉我是否可以这样做吗?

我能想到的两种实现这种行为的方法 1.我为不同类型的具有不同重用标识符的单元创建不同的 XIB,并附加到该 customCell 类。但在这种情况下,我可以拥有超过 15 个不同的单元格。

    我使用的方法是将所有子视图放在 XIB 中的自定义单元格中,然后更改您的约束以实现不同类型的单元格。但我已经在上面的解释中解释了我的问题。

【问题讨论】:

【参考方案1】:

您可以通过单个单元格来完成,一个接一个地创建 3 个子视图并为所有 3 个视图设置高度 NSLayoutConstraint。

现在假设您只想显示第二个视图,然后将第一个和第三个视图的高度约束常量值设置为 0 并更新单元格。

cell.view1_height.constant=0;
cell.view3_height.constant=0;
[cell updateConstraintsIfNeeded];

这将只保留第二个视图的高度。

【讨论】:

【参考方案2】:

我对类似的单元格使用了不同的重用标识符,然后在高度受到影响的地方创建了多个 XIB。并且还使用约束来隐藏按钮和显示按钮以及所有内容。

【讨论】:

以上是关于使用单个 XIB 和类创建多个 collectionviewcells的主要内容,如果未能解决你的问题,请参考以下文章

将多个自定义 UITableViewCell 链接到单个 xib

单个 UIViewcontroller,如何在多个 xib 之间切换?

Xamarin.iOS - 单个 UITableView 中的多个 XIB

访问,从单个 nib 获取对多个视图的引用

如何使用 iOS 故事板创建具有两个嵌套 tableview 单元格 xib 的单个 tableview?

Xcode使用介绍之二:创建UI界面+连线