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

Autolayout - verschiedene Layouts für Portrait und Landscape

4f672bf7a09a856910f318e61cdc2a4c?s=47 Pit Garbe
January 14, 2014

Autolayout - verschiedene Layouts für Portrait und Landscape

Eine Lösung, um mit Autolayout zwei unterschiedliche Layouts zu zeigen, je nachdem wie das Gerät gedreht wird. Natürlich mit Animation ;)

Das GitHub-Projekt dazu: https://github.com/leberwurstsaft/ALPlayGround

Wer lieber animierte Folien sieht (inklusive Demo-Video), kann auch die Keynote-Datei laden: http://d.pr/f/LpXR

4f672bf7a09a856910f318e61cdc2a4c?s=128

Pit Garbe

January 14, 2014
Tweet

Transcript

  1. AutoLayout Pit Garbe ! CocoaHeads Dresden, 14.01.2014 Ein paar Hinweise

  2. Unterschiedliche Layouts für Portrait und Landscape

  3. Rotation - Wunschvorstellung

  4. Rotation - Wunschvorstellung

  5. Rotation - Vermutung

  6. Rotation - Vermutung

  7. Die Lösung 1. 2. ♥

  8. Eine (echte) Lösung •Constraints für eine Ausrichtung vollständig in IB

    •alle Constraints, die NUR für diese Ausrichtung gelten und NICHT für die andere in eine IBOutletCollection •in -updateConstraints die Constraints für die andere Ausrichtung einmalig erstellen •dann je nach aktueller Ausrichtung die richtigen Constraints installieren
  9. Betreffende Constraints wählen Constraints, die inneres Layout in grüner Subview

    betreffen Constraints, die Layout von grüner und orangener Subview betreffen
  10. Alles in eine IBOutletCollection

  11. Außerdem Outlets für die wichtigen Views und ein Array für

    die Constraints, die später im Code erzeugt werden.
  12. in -updateViewConstraints alle Constraints für Landscape einmalig erstellen

  13. Je nach Ausrichtung die passenden Constraints entfernen und die jeweils

    anderen installieren. Die Änderungen der Frames werden automatisch animiert. GitHub: https://github.com/leberwurstsaft/ALPlayGround
  14. Magic Lösung (kein AutoLayout) •TPMultiLayoutViewController •http://atastypixel.com/blog/seamlessly-manage- portrait-and-landscape-view-controller-layouts/ •https://github.com/michaeltyson/ TPMultiLayoutViewController •

    2 Jahre alt kann nix mit AutoLayout anfangen und nicht mal vollständig Springs+Struts abdecken • Verbesserungen (Animationen, etc.) •https://github.com/amolloy/ TPMultiLayoutViewController
  15. Auch sehenswert