¿Qué impacto tienen las métricas simuladas?

Cuando se usan los files .xib, ¿qué impacto tienen en su código / aplicación los cambios en las métricas simuladas? ¿O es solo para su beneficio como una herramienta de vista previa?

Las métricas simuladas son principalmente una ayuda de layout para ayudarlo a diseñar su interfaz. Tienen poco impacto directo en el .xib * [1]. Son muy útiles porque puede simular cosas como que su controller de vista está embedded en un controller de navigation, lo que le proporciona less espacio para trabajar, ya que la barra de navigation ocupa un poco de espacio. También son muy útiles si está presentando un viewController que solo se utilizará en paisaje. En el momento en que se introdujeron, era la única forma de verificar cómo se vería su interfaz en la pantalla más corta del iPhone 4 y la pantalla más alta del iPhone 5 * [2].

Con frecuencia configuro el Tamaño a iPhone 4 pulgadas porque: 1) me parece que funciona en el cuadrado viewController distrayendo, 2) Ocupa mucho less espacio en pantalla que me permite ver más de mi Storyboard en mi pantalla portátil. Este método es mucho less peligroso que cambiar la class de tamaño a wC hR porque este último realmente afectará qué restricciones se usan para dispositivos de diferentes tamaños.


[1] Las métricas de Tamaño y Orientación afectarán el tamaño del viewController tal como está almacenado en el file .xib o .storyboard . Si deja la configuration como Infernetworking , Xcode usará 600 x 600 como el tamaño de viewController. Normalmente, esto no hace ninguna diferencia, porque el viewController tendrá el tamaño adecuado para el dispositivo cuando se cargue.

[2] En el momento en que se introdujeron Métricas simuladas , esta fue la forma de probar los layouts para el iPhone 4s frente al nuevo iPhone 5 más alto. Desde entonces, Apple ha introducido otras mejores forms de revisar layouts en dispositivos de diferentes tamaños.

Bueno, en realidad cambiar las métricas simuladas afecta su aplicación de una manera muy astuta. Descubrí esto mientras usaba la biblioteca SwipeView y mis diapositivas se vieron afectadas al cambiar el tamaño de la métrica simulada.

Debajo del capó, cambiar ese tamaño establece el valor rectángulo del file nib como tal:

 <rect key="frame" x="0.0" y="0.0" width="600" height="600"/> 

Ese valor será del tamaño que lance la punta. Si intentamos medir elementos en la vista, aparecerá la carga y la vista, tendremos información falsa:

 // viewDidLoad (lldb) po splashImageView <UIImageView: 0x79913eb0; frame = (0 0; 600 600); autoresize = RM+BM; userInteractionEnabled = NO; layer = <CALayer: 0x799ca310>> // viewWillAppear (lldb) po splashImageView <UIImageView: 0x79913eb0; frame = (0 0; 600 600); autoresize = RM+BM; userInteractionEnabled = NO; layer = <CALayer: 0x799ca310>> 

Una vez que se hayan realizado las subvistas del layout, tenemos el tamaño adecuado, pero en lo que respecta a SwipeView, ya es demasiado tarde, ya ha calculado la position de todo.

 // viewDidLayoutSubviews (lldb) po splashImageView <UIImageView: 0x79913eb0; frame = (0 0; 768 1024); autoresize = RM+BM; userInteractionEnabled = NO; layer = <CALayer: 0x799ca310>> 

Si alguien puede proporcionar más información, realmente me gustaría.

Mire la Sesión 407 de WWDC 2015 Implementación de layouts de interfaz de usuario en Interface Builder , hablaron de métricas simuladas

introduzca la descripción de la imagen aquí

Inferido

Ahora, en este momento, todos dicen que son inferidos. Inferido básicamente significa usar el context a mi alnetworkingedor. Sabemos que estamos dentro de un controller de barra de tabs, sabemos que estamos dentro de un controller de navigation para que el constructor de la interfaz sepa qué barra mostrar.

Métricas simuladas

Todas estas métricas no afectan su aplicación real en time de ejecución con una exception y esa es la métrica simulada de tamaño.

El tamaño de la métrica simulada cambiará realmente el tamaño del controller de vista, pero generalmente lo colocará en una jerarquía de controller de vista que lo cambiará de tamaño, pero también es útil si está creando controlleres de vista de formulario gratuitos, por ejemplo, y quiere para configurar tu propio tamaño.