UI definition with size classes
When working with iOS applications, you used to think about a device screen in terms of size, orientation, and device type. Now forget about it! We will start from scratch and take a look at how to create adaptive layouts using size classes.
Conceptually, a size class is extremely simple. It is a way to express vertical and horizontal sizes through only two possible values: regular or compact. As the two words imply, you can define that an object size (vertical or horizontal) is just at its regular (read "big") or compact (also, "small") format.
As you can note with these two definitions, we are not saying anything about orientation or device; we just say that a generic object has, for example, a vertical compact size and a horizontal regular size. This generic object interface can be defined to behave differently, depending on its size classes—not on the device type, orientation, or specific size.
The UIUserInterfaceSizeClass
enum...