2

我正在研究 iOS 开发,因为我将在几天后开始使用 Web 服务创建一个 iOS 应用程序。虽然我已经阅读并看到了很多教程、文档、论坛等等,但我的问题仍然没有答案,或者说答案没有明确说明。我希望有一个人可以帮助我。我只是想知道这一点,因为如果每个 .xib 文件都必须有自己的类文件,那么这意味着我会有很多文件。

4

3 回答 3

1

XIB 文件是内容的存档,可以由视图控制器和视图组成。一般来说,“内置”视图控制器在您对它们进行子类化之前并没有多大用处,因此如果 XIB 包含视图控制器,那么您通常会有关联的 .h/.m 文件。但 XIB 可能只包含视图。在这种情况下,您可能没有关联的文件(但很有可能您应该有一个视图子类,因为您的视图可能希望有一些子视图的出口)。

于 2013-10-17T18:59:02.063 回答
1

Xib 文件可以包含任何类型的序列化资源——数组、字典,不仅是视图和视图控制器。所以 xib 文件不能有 *.h *.m 文件

于 2013-10-17T22:08:57.310 回答
1

答案是否定的,但是当为每个视图控制器使用 nib 文件(而不是作为 nib 文件集合的情节提要)时,您通常会这样做。

nib 文件归档对象图

记住这一点。界面生成器及其创建的 nib 文件用于创建对象图。您实际上可以在 nib 中抛出任意对象,并在运行时加载它们。当我第一次开始时,这是最令人困惑的话题之一。

xib 文件(我仍然称它们为 nib)只是对您可以直观地构建的对象图的描述。基本上,您在 nib 中设置的每个对象都已存档,并且在运行时未存档。您在界面生成器中选择的设置也被归档,相当于在代码中调用方法。

例如,在 nib 中为 UIView 选择背景颜色与在代码中发送 setBackgroundColor: 相同。调整视图的大小就像发送 setFrame: 等。这一切都在您构建时存档,并在运行时取消存档。

nib 文件保留对您子类化的对象的引用。

如果您有自定义视图,您将拥有该视图的子类(.h 和 .m)并将其设置在 nib 中。当然,除非你不想让视图做任何事情。

在此处设置类设置对您的 .h 文件的引用,并允许您在 IB 中设置常用设置

通常,当您创建一个 nib 文件时,无论如何,在 iOS 上,您都会选择为视图控制器子类获取 .h 和 .m 文件。这最终连接到 nib 中的文件所有者代理对象。以 UIView 为例,当您为视图创建子类时,在界面生成器中设置它会为您提供对该代码的引用。然后,您可以在 nib 中设置它的大小、背景颜色、绘图选项等,以及它在代码中实际绘制的内容。

在运行时存档的界面构建器中的选项。 这可以节省您的时间和代码行数

这是苹果关于笔尖的详细文章:

https://developer.apple.com/library/ios/documentation/cocoa/conceptual/LoadingResources/CocoaNibs/CocoaNibs.html

于 2013-10-17T23:42:27.213 回答