Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Autolayout - different Layouts for Portrait and...

Pit Garbe
January 15, 2014

Autolayout - different Layouts for Portrait and Landscape

A way to make Autolayout show different layouts depending on the current orientation. Complete with animated transitions ;)

The GitHub sample project: https://github.com/leberwurstsaft/ALPlayGround

If your rather want animated slides (includes a demo video), get the Keynote here: http://d.pr/f/EDSI

Pit Garbe

January 15, 2014
Tweet

More Decks by Pit Garbe

Other Decks in Programming

Transcript

  1. A (real) Solution •Add constraints for one orientation completely in

    IB •Add constraints, that ONLY exist in this orientation but NOT in the other to an IBOutletCollection •in -updateConstraints create the constraints for the other orientation (once) •then, depending on the current orientation, remove the old constraints and install the others
  2. Select relevant constraints Constraints concerning the inner layout inside the

    green subview Constraints concerning the layout of the green and orange subviews
  3. Also add IBOutlets for the important views and an array

    for the constraints that are going to be created in code.
  4. Depending on the orientation, remove the old constraints and install

    the needed constraints. The changes to the frames will automatically animate. GitHub: https://github.com/leberwurstsaft/ALPlayGround
  5. Magical Solution (not AutoLayout) •TPMultiLayoutViewController •http://atastypixel.com/blog/seamlessly-manage- portrait-and-landscape-view-controller-layouts/ •https://github.com/michaeltyson/ TPMultiLayoutViewController •

    2 years old, doesn’t know about AutoLayout and doesn’t fully cover Springs+Struts (but it works) • Improved fork (Animations, etc.) •https://github.com/amolloy/ TPMultiLayoutViewController