Posicionamiento de vistas según la altura del dispositivo en iOS

Estoy cambiando a autolayout y me gustaría posicionar vistas relativamente a la altura del dispositivo. ¿Cómo debo configurar las restricciones para satisfacer tal condición?

Tengo un buen layout para iPhone 5 pero para iPhone 6Plus me gustaría mover "rojo" a la position de "gris":

diseño de iPhone 5sdiseño de iPhone 6 Plus

Todas mis limitaciones actuales:

Xcode de Constrains

Una idea podría ser colocar el nombre de usuario, la contraseña y los elementos de inicio de session en uiView con clearBackground y luego crear una restricción para esa vista y su supervisión y crear una salida para ella. A continuación, puede detectar qué teléfono está utilizando en el código y modificar las restricciones de forma progtwigda en willLayoutSubviews.

if ((int)[[UIScreen mainScreen] bounds].size.height == 736) { // This is iPhone 6+ screen myConstraint.constant = 150; } else if ((int)[[UIScreen mainScreen] bounds].size.height == 568) { // This is iPhone 5s screen frameRateLabelHeightConstraint.constant = 100; } 

Habrá una mejor manera de hacerlo en Autolayout, sin duda, pero me parece un poco confuso, así que he usado este método en el pasado.

Aquí hay un proyecto de ejemplo cargado en @ One Drive . Aquí están las salidas de muestra en varias versiones de iPhone Simulators … iPhone 4 / 4SiPhone 5 / 5Siphone 6iPhone6 ​​+

Como veo, quieres poner tu formulario en el centro de la vista. Por lo tanto, creo que la mejor solución será poner sus elementos de formulario en otra vista transparente y agregar a esta vista la restricción de aligment centerX y la restricción de aligment central.

puedes verificar otra forma aquí