Chapter 8. Nib Files

When you’re programming iOS with Cocoa, your app’s visible interface consists entirely of views. A view (UIView) is an interface object, which draws itself into a rectangular area. A view can contain (and own) other views, its subviews, forming a view hierarchy. All views, in turn, are ultimately placed on the screen by a view controller. A view controller owns one view — its main view — along with that view’s subviews, and their subviews, and so forth. At every moment, some view controller’s main view occupies the entire screen. Whatever that view and its subviews look like when they draw themselves, that is what the user will see.

Where do all these views come from? Well, UIView is a class; an individual UIView is an instance of that class. And you know how to make an instance of a class — you call that class’s initializer:

let v = UIView()

So you could create all your interface views in code, one by one. For each view, you would instantiate it; then you would configure it. You’d say where it should go on the screen, what size it should have, what color it should be. If the view is a button or a label, you’d say what text it should display. And so on.

But that could be a lot of code. Wouldn’t it be nice if, instead, you could draw your desired interface, just as in a drawing application, and have the runtime build the interface for you, based on your drawing? Well, you can — using a nib.

A nib is a file, in a special format, consisting of instructions for ...

Get iOS 15 Programming Fundamentals with Swift now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.