单个笔尖的多个视图

Posted

技术标签:

【中文标题】单个笔尖的多个视图【英文标题】:Multiple views with on single nib 【发布时间】:2016-05-25 14:29:33 【问题描述】:

我有一个显示食谱列表的集合视图。有多种类型的食谱以略微不同的方式呈现(不同的文本颜色等),但它们在视觉上非常相似。

我的想法:

在笔尖内有一个配方 UICollectionViewCell。 有一个通用的 RecipeCollectionViewCell 包含所有 IBOutlets。然后,每个配方类型将是通用 RecipeCollectionViewCell 的子类,并实现其自己的 configureWithRecipe() 方法。这样一来,父类保持干净,配置被下推到子类。

我现在的问题是:有没有办法为多个 UICollectionViewCell 子类配置同一个 nib?

registerNib:forIdentifier: 不起作用,因为我无法指定要使用的类。 registerClass: forCellWithReuseIdentifier: 不起作用,因为我不能提供它应该从笔尖加载。 :/

【问题讨论】:

您可以使用 registerClass:forCellWithReuseIdentifier:在您的单元格类 initWithFrame 中,只需加载 nib 并将其视图添加为子视图。 【参考方案1】:

是的,您可以在所有单元格类中添加子视图。 所以整体情况就像 你有一个名为 ABCView 的视图,它有它的 nib 并且所有的 iboutlets 都将被连接起来,这样所有的配置都将在这个类中进行。 现在在所有单元类中,您可以加载此 ABCView 并将其添加为子视图。要在 ABCView 和 Cell 类之间进行通信,您可以使用委托方法。

【讨论】:

以上是关于单个笔尖的多个视图的主要内容,如果未能解决你的问题,请参考以下文章

何时使用多个笔尖?

从笔尖加载的 UIView 未显示多个 UILabel

单独的方向笔尖

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

iCarousel 多个笔尖

多个容器视图 VS 链接到单个容器视图的多个视图控制器