There is an updated version of this course available, created for Swift 4, iOS 12, Xcode 10. View Latest Version

Adaptive Layout

Dec 14 2015 · Video Course (1 hr, 17 mins) · Beginner

Auto layout is a great start to building flexible user interfaces, and adaptive layout will take your constraints to the next level! In this series, you’ll learn how to use size classes in interface builder to support different sizes of iPhone and iPad and both orientations in a single storyboard. You’ll also look at some of the behind-the-scenes classes that can help you build adaptive layouts, such as trait collections and image assets.


  • Swift 2, iOS 9, Xcode 7


5:11 Free

Find out what's covered in our Adaptive Layout video tutorial series.


Size Classes


Learn about Size Classes, the core concept of Adaptive Layout, and learn the basics of working with Size Classes in Interface Builder.



9:40 Free

Learn how to customize the position and size of our views for different Size Classes by adding new constraints and uninstall existing constraints based on Size Class.




Learn how to adjust your layout by adding or removing a view to allow for the best use of space in your layout.


Learn how Adaptive Layout lets you specify different values for images and fonts based on the Size Class so that as things are scaled down the user can still read the font.


Learn about trait collections and trait environments, the class and protocol you use to detect the current Size Class from code to further customize your layouts.


Learn about UIAppearance and how to use the appearance proxy with trait collections to customize the look of things in your app by Size Class.


Learn about Adaptive Presentation and how a view controller can control its own presentation style at run time based on the current trait collection or any other conditions.




Review what you learned in our Adaptive Layout video tutorial series and find out what other resources you should check out.


Version history

iOS 12, Swift 4, Xcode 10

May 17 2018

iOS 10, Swift 3, Xcode 8

Feb 14 2017

iOS 9, Swift 2, Xcode 7 (Selected)

Dec 14 2015

iOS 9, Swift 2, Xcode 7

Sep 15 2015