Mientras explora el área segura encontrada de Xcode9 Beta en los constructores de interfaces Vea el visor de jerarquía Sentí curiosidad y traté de saber sobre la documentación del Área segura en las manzanas, en esencia el documento dice "El área de vista que interactúa directamente con el diseño automático" Pero no me satisfizo, quiero saber Uso práctico de esta nueva cosa.
¿Alguien tiene alguna pista?
Párrafo de conclusión del documento de Apple para el área segura.
La clase UILayoutGuide está diseñada para realizar todas las tareas previamente realizadas por vistas ficticias, pero para hacerlo de una manera más segura y eficiente. Las guías de diseño no definen una nueva vista. No participan en la jerarquía de vistas. En cambio, simplemente definen una región rectangular en el sistema de coordenadas de su vista propietaria que puede interactuar con el diseño automático.
Respuestas:
Cuando la vista es visible en pantalla, esta guía refleja la parte de la vista que no está cubierta por otro contenido. El área segura de una vista refleja el área cubierta por barras de navegación, barras de pestañas, barras de herramientas y otros antepasados que oscurecen la vista de un controlador de vista. (En tvOS, el área segura incorpora el bisel de la pantalla, según lo define la
overscanCompensationInsets
propiedad de UIScreen.) También cubre cualquier espacio adicional definido por laadditionalSafeAreaInsets
propiedad del controlador de vista . Si la vista no está instalada actualmente en una jerarquía de vistas o aún no está visible en la pantalla, la guía de diseño siempre coincide con los bordes de la vista.Para la vista raíz del controlador de vista, el área segura en esta propiedad representa la porción completa del contenido del controlador de vista que está oculto, y cualquier inserción adicional que haya especificado. Para otras vistas en la jerarquía de vistas, el área segura refleja solo la parte de esa vista que está oculta. Por ejemplo, si una vista está completamente dentro del área segura de la vista raíz del controlador de vista, las inserciones de borde en esta propiedad son 0.
Aquí hay una referencia simple como una comparación (para lograr un efecto visual similar) entre la Guía de diseño existente (superior e inferior) y la Guía de diseño de área segura.
Diseño de área segura:
Diseño automático
¿Cómo trabajar con el diseño de área segura?
Siga estos pasos para encontrar la solución:
Aquí hay una instantánea de muestra, cómo habilitar el diseño de área segura y la restricción de edición.
Aquí está el resultado de los cambios anteriores
Diseño de diseño con SafeArea
Al diseñar para iPhone X, debe asegurarse de que los diseños llenen la pantalla y no estén ocultos por las esquinas redondeadas del dispositivo, la carcasa del sensor o el indicador para acceder a la pantalla de inicio.
La mayoría de las aplicaciones que utilizan elementos de interfaz de usuario estándar proporcionados por el sistema, como barras de navegación, tablas y colecciones, se adaptan automáticamente al nuevo factor de forma del dispositivo. Los materiales de fondo se extienden hasta los bordes de la pantalla y los elementos de la interfaz de usuario se insertan y colocan adecuadamente.
Para aplicaciones con diseños personalizados, la compatibilidad con iPhone X también debería ser relativamente fácil, especialmente si su aplicación usa Diseño automático y se adhiere a las guías de diseño de márgenes y áreas seguras.
Aquí hay un código de muestra (Ref. De: Guía de diseño de área segura ) :
Si crea sus restricciones en el código, use la propiedad safeAreaLayoutGuide de UIView para obtener los anclajes de diseño relevantes. Recreemos el ejemplo anterior de Interface Builder en código para ver cómo se ve:
Suponiendo que tenemos la vista verde como una propiedad en nuestro controlador de vista:
Podríamos tener una función para configurar las vistas y restricciones llamadas desde viewDidLoad:
Cree las restricciones de margen inicial y final como siempre utilizando el layoutMarginsGuide de la vista raíz:
Ahora, a menos que solo tenga como objetivo iOS 11, deberá ajustar las restricciones de la guía de diseño del área segura con #available y volver a las guías de diseño superior e inferior para las versiones anteriores de iOS:
Resultado:
Después de la
UIView
extensión, le facilitará trabajar con SafeAreaLayout mediante programación.Aquí hay un código de muestra en Objective-C :
Aquí está la documentación oficial del desarrollador de Apple para la guía de diseño de área segura
Se requiere un área segura para manejar el diseño de la interfaz de usuario para iPhone-X. Aquí hay una guía básica sobre cómo diseñar una interfaz de usuario para iPhone-X usando el diseño de área segura
fuente
margins
yview.leadingAnchor
: cuando usalet margins = view.layoutMarginsGuide
y usa más tardemargins.leadingAnchor
, está restringiendo la vista a los márgenes de la vista. Esto agregará algo de espacio extra a los lados. Si no desea que sólo tiene que utilizarview.leadingAnchor
yview.trailingAnchor
y no verá ningún espacio en blanco a la izquierda oa la derecha ...Quiero mencionar algo que me sorprendió primero cuando estaba tratando de adaptar una aplicación basada en SpriteKit para evitar los bordes redondeados y la "muesca" del nuevo iPhone X, como lo sugieren las últimas Directrices de interfaz humana : la nueva propiedad
safeAreaLayoutGuide
de lasUIView
necesidades debe consultarse después de que la vista se haya agregado a la jerarquía (por ejemplo, en-viewDidAppear:
) para informar un marco de diseño significativo (de lo contrario, solo devuelve el tamaño de pantalla completa).De la documentación de la propiedad:
(énfasis mío)
Si lo lees tan pronto como
-viewDidLoad:
,layoutFrame
la guía será en{{0, 0}, {375, 812}}
lugar de la esperada{{0, 44}, {375, 734}}
fuente
UIKit
utiliza el topLayoutGuide y bottomLayoutGuide que esUIView
propiedadiOS11 + usa safeAreaLayoutGuide que también es
UIView
propiedadActive la casilla de verificación Guía de diseño de área segura del inspector de archivos.
Las áreas seguras lo ayudan a colocar sus vistas dentro de la parte visible de la interfaz general.
En tvOS , el área segura también incluye las inserciones de sobreexploración de la pantalla, que representan el área cubierta por el bisel de la pantalla.
Use áreas seguras como ayuda para diseñar su contenido como
UIButton
etc.Al diseñar para iPhone X, debe asegurarse de que los diseños llenen la pantalla y no estén ocultos por las esquinas redondeadas del dispositivo, la carcasa del sensor o el indicador para acceder a la pantalla de inicio.
Asegúrese de que los fondos se extiendan hasta los bordes de la pantalla y que los diseños desplazables verticalmente, como tablas y colecciones, continúen hasta el final.
La barra de estado es más alta en el iPhone X que en otros iPhones. Si su aplicación asume una altura de barra de estado fija para posicionar el contenido debajo de la barra de estado, debe actualizar su aplicación para posicionar dinámicamente el contenido en función del dispositivo del usuario. Tenga en cuenta que la barra de estado en el iPhone X no cambia la altura cuando las tareas en segundo plano como la grabación de voz y el seguimiento de ubicación están activas
print(UIApplication.shared.statusBarFrame.height)//44 for iPhone X, 20 for other iPhones
La altura del contenedor del indicador de inicio es de 34 puntos.
Una vez que habilite la Guía de diseño de área segura , puede ver la propiedad de restricciones de área segura en el generador de interfaces.
Puede establecer restricciones con respectivas de
self.view.safeAreaLayoutGuide
as-ObjC:
Rápido:
fuente
Apple presentó topLayoutGuide y bottomLayoutGuide como propiedades de UIViewController en iOS 7. Le permitieron crear restricciones para evitar que su contenido se ocultara en barras UIKit como el estado, la navegación o la barra de pestañas. Estas guías de diseño están en desuso en iOS 11 y se reemplazan por una única guía de diseño de área segura.
Consulte el enlace para más información.
fuente
El Área segura es el área entre los elementos de la IU del sistema que son Barra de estado, Barra de navegación y Barra de herramientas o Barra de pestañas. Entonces, cuando agrega una barra de estado a su aplicación, el área segura se reduce. Cuando agrega una barra de navegación a su aplicación, el área segura se reduce nuevamente.
En el iPhone X, el Área segura proporciona un recuadro adicional desde los bordes superior e inferior de la pantalla en vertical incluso cuando no se muestra ninguna barra. En el paisaje, el área segura se inserta desde los lados de las pantallas y el indicador de inicio.
Esto está tomado del video de Apple Diseño para iPhone X, donde también visualizan cómo los diferentes elementos afectan el Área segura.
fuente