¿Cuáles son las mejores prácticas para usar AutoLayout?

Desde iOS7, he estado buscando un patrón de layout GUI estándar.

En mis dos aplicaciones anteriores, desconecté la reproducción automática y utilicé el autoajuste.

Por lo general, se parece a esto

introduzca la descripción de la imagen aquí

La vista principal se ve a continuación en TIPE INSPECTOR.

introduzca la descripción de la imagen aquí

Actualmente estoy haciendo dos xibs, iPhone4 iPhone5 y uso UIViewAutoresizingFlexibleTopMargin & UIViewAutoresizingFlexibleLeftMargin junto con -64 en iOS6 / 7 Delta.

Para vistas internas / secundarias, por lo general, conservo UIViewAutoresizingFlexibleTopMargin y UIViewAutoresizingFlexibleLeftMargin y -64 en iOS6 / 7 Delta para funcionar bien en iOS6.

introduzca la descripción de la imagen aquí

Da un resultado casi perfecto, pero en algún momento necesito iniciar la Vista desde el inicio de xib (0,0), pero en algún momento desde (64,0) para mostrar las Vistas parece comenzar desde la frontera más alta de Ver mientras se ejecuta.

Me confunde mucho entender qué es la forma estándar de diseñar XIB, de modo que podamos usar un solo XIB para iPhone4 e iPhone5 y en ambas plataforms.

Gracias

Personalmente, me parece que usar Interface Builder con AutoLayout no es muy fácil de usar y que rápidamente se volvió complicado.

Prefiero hacer todas las cosas de AutoLayout mediante progtwigción. Para evitar muchas repeticiones, uso la biblioteca de mampostería, que es bastante sorprendente.

Escribir código de layout automático desde cero no es fácil. Hay una opción similar disponible para material AutoLayout. Podemos establecer todas las restricciones programáticamente con la ayuda de PureLayout. https://github.com/PureLayout/PureLayout

Instalación:

  1. Agregue la cápsula PureLayout a su Podfile.

     pod 'PureLayout' 
  2. Ejecute la pod install desde la Terminal, luego abra el file .xcworkspace su aplicación para iniciar Xcode.

  3. Importe el PureLayout.h paraguas PureLayout.h .

    1. Con use_frameworks! en tu Podfile

      Swift: import PureLayout

      Objective-C: #import <PureLayout/PureLayout.h> (o con los modules habilitados: @import PureLayout; )

    2. Sin use_frameworks! en tu Podfile

      Swift: agregue #import "PureLayout.h" a su encabezado de puenteo.

      Objective-C: #import "PureLayout.h"

¡Estás listo!. Ahora PureLayout un bello layout con PureLayout

La mejor práctica para usar el layout automático es practicar mucho hasta que lo consigas con fluidez 🙁

A continuación, puede utilizar varias estrategias.

El que no va a funcionar y que te hará sacar el pelo está tratando de combinar el constructor de la interfaz y las restricciones en el código. No lo hagas.

El segundo que funciona después de que descubrió cosas es hacer todo, layout y layout usando restricciones de layout, en el generador de interfaces. Tenga en count que las restricciones de layout pueden ser IBOutlets y que puede manipular las constantes de las restricciones de layout en el código con bastante facilidad.

El tercero que también funciona es crear sus vistas en el código, incluida la restricción de layout. Use o escriba una biblioteca que facilite la creación de restricciones.

Como se describe en el website oficial de desarrolladores de Apple, el siguiente enlace expone las pautas para usar el lenguaje de formatting visual para el layout automático, que es una de las mejores prácticas adoptadas entre los desarrolladores de iOS en la actualidad.

https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/AutolayoutPG/VisualFormatLanguage.html