A size class identifies a relative amount of display space available for the height and for the width of your app. Each dimension can be either compact, for example, the height of an iPhone in landscape orientation, or regular, for example, the height or width of an iPad. Because much of the layout of an app does not need to change for any available screen size, there is an additional value, any.
The current size class for a view controller is based on three factors:
The screen size of the device.
The orientation of the device.
The portion of the screen available to the view controller. For example, when a split view controller displays both the master and detail controllers, neither controller has access to the full screen.
Interface Builder lets you customize the layout, constraints, and properties of objects based on the size class. The layout then automatically adapts as the size class changes—for example, when the user switches from portrait to landscape, or opens a split view on an iPad.