【发布时间】:2014-05-26 16:37:48
【问题描述】:
任务很简单:
- 我们有一个 XIB。
- 我们有一个自定义的 UIView 类实现。没有 XIB。
- 我们可以将感谢 IB UIView 元素添加到 XIB 并将其类设置为自定义 UIView 类。
- 我们可以创建自定义 UIView 类的 outlet,并将自定义 UIView 从 XIB 连接到它。
- 但似乎我们应该执行额外的步骤来在加载 XIB 时显示我们的自定义 UIView(及其元素 - 标签、图像等)。
- 哪些步骤?
UPD:任务已完成。我们应该使用 initWithCoder。引用Pizzaiola Gorgonzola:«initWithFrame 在动态创建 UIView 时从代码中调用。从 .nib 文件加载的视图始终使用 initWithCoder 进行实例化,编码器负责从 .nib 文件中读取设置»。感谢提问Subviews not showing up in UIView class。
【问题讨论】:
-
你看过类参考developer.apple.com/library/ios/documentation/uikit/reference/…中的“子类化UIView”笔记吗?您要么需要通过 addSubView 以编程方式添加按钮、标签等,要么从情节提要或 XIB 加载视图。如果您不使用标准控件,也可以实现 drawRect。通常,您不会以这种方式子类化 UIview - 您将使用从 XIB 或故事板驱动的 UIViewController 子类
-
感谢您的回复。一瞬间。假设我们有 UIView 已经 addSubView 元素。由于我们可以看到该应用显示了来自 XIB 的 UIView,因此我们可以得出结论,IB 为我们生成了代码并添加了我们自定义 UIView 的 SubView。但是为什么我们看不到里面的一个元素呢?它就像简单的链:A->B->C。现在 C 显示 B,但内部没有 A。奇怪。
标签: ios objective-c uiview xib