UINib (iOS):可以从一个 nib 文件中实例化多个视图吗?
Posted
技术标签:
【中文标题】UINib (iOS):可以从一个 nib 文件中实例化多个视图吗?【英文标题】:UINib (iOS): possible to instantiate more than one view from a nib file? 【发布时间】:2018-01-15 09:28:55 【问题描述】:我注意到UINib:instantiate(withOwner:options:)
返回一个数组。这是否意味着一个 nib 文件可以包含多个视图?在我看到的每个示例中,只有一个视图,它是数组中的第一个对象。数组中其他(可能的)元素是什么?
我问这个问题是因为我想了解整个机制是如何工作的,而不是因为我想以这种方式工作,所以欢迎任何理论背景信息。
谢谢!
编辑:如果我可以在一个 nib 文件中有多个视图,如何将第二个视图连接到 UIView 子类?只有一个File's Owner
。
【问题讨论】:
Resource Programming Guide 有一些有用的信息。 已经读过了。找不到我的问题的答案,而且语言远非简单。 【参考方案1】:是的,您可以在 nib 文件中拥有多个视图。例如。
具有两个根视图的Test.nib
。
加载它
if let views = Bundle.main.loadNibNamed("Test", owner: nil)
print(views)
views
将是两个数组。数组的第一个元素是UIView
,第二个元素是UITableViewCell
【讨论】:
那么,如果我想将它们连接到 UIView 的子类怎么办?那可能吗?只有一个文件的所有者 您可以在Identity Inspector
中为两个视图设置自定义类。以上是关于UINib (iOS):可以从一个 nib 文件中实例化多个视图吗?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ios 中使用 UI NIB 而不是 loadNibNamed 来自定义 UI 表格视图单元格?
Swift 惰性变量和 didReceiveMemoryWarning
UITableViewCell 的 Nib 文件中视图的大小