在 iOS 开发中, 我们会经常接触到的 xib 文件, 还能听到它的另一个名字 nib, 其实它们俩差不多是指代同一个东西, 只不过 xib 是编译前, nib 是编译后, 还有后来的 storyboard, 它们其实都 xml 文件, 通过右键这些文件然后 open as > source code 就可以看到文件的源码.
如果你仔细比对 xib 和 storyboard 的 xml 的文件内容, 你会发现, 差别很小, 其中两个重要的差别是:
- document type 不同: storyboard 的 type 是
com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB
, 而 xib 的 type 是com.apple.InterfaceBuilder3.CocoaTouch.XIB
. - storyboard 相对于 xib 多了一个 scene 的 概念, 所有 xml 里会有一个顶层标签是 scenes 而 xib 里的顶层标签是 objects.
xib 和 storyboard 就像一个配置文件, 我们在图形化界面里将我们想要的界面搭建好, 然后我们调用系统提供的方法来读取这些文件来构建一个个对象.