sketch priority español code ios layout

ios - priority - swift auto layout programmatically



¿Diferencia entre leftAnchor y LeadingAnchor? (1)

He estado trabajando con restricciones en Swift para iOS, y la mayoría de las convenciones de nomenclatura / documentación hacen que las cosas se expliquen por sí mismas, pero una cosa que me ha confundido recientemente son dos pares de la clase NSLayoutXAxisAnchor:

leadingAnchor, leftAnchor

junto con

trailingAnchor, rightAnchor

Cuando establecí restricciones mediante programación en mi aplicación iOS, descubrí que puedo usarlas de manera totalmente intercambiable. Si uso LeadingAnchor, ejecuto la aplicación y observo el comportamiento, y luego uso leftAnchor, ejecuto la aplicación y observo el comportamiento, funciona exactamente igual.

Revisé la documentación de developer.apple.com, y los resultados son incluso exactamente los mismos (ignorando la diferencia en los nombres). Por ejemplo, comparando el LeadingAnchor y el leftAnchor:

"Use este ancla para crear restricciones con el borde de ataque de la vista. Solo puede combinar este ancla con un subconjunto de los anclajes NSLayoutXAxisAnchor. Puede combinar un LeadingAnchor con otro LeadingAnchor, un TrailingAnchor o un centerXAnchor. Para obtener más información, consulte NSLayoutAnchor Class. Referencia."

comparar con:

"Use este anclaje para crear restricciones con el borde izquierdo de la vista. Solo puede combinar este anclaje con un subconjunto de los anclajes NSLayoutXAxisAnchor. Puede combinar un anclaje izquierdo con otro LeftAnchor, un rightAnchor o un centerXAnchor. Para obtener más información, consulte NSLayoutAnchor Class. Referencia."

¿Alguien sabe si hay alguna diferencia prevista entre estas propiedades?


Esto fue cubierto (brevemente) en uno de los videos de la WWDC 2015 sobre Mysteries of Autolayout (creo que fue la parte 1, pero vale la pena verlos a ambos).

Las restricciones izquierda y derecha son absolutas, siempre se referirán a la izquierda / derecha de la pantalla o el control. Las restricciones iniciales y finales se ven afectadas por la configuración regional del dispositivo; En entornos locales donde la dirección de lectura es de izquierda a derecha (inglés, francés, español, etc.), se pueden usar indistintamente el inicio y la izquierda (y el final y la derecha). En las localidades donde la dirección de lectura es de derecha a izquierda (por ejemplo, hebreo, árabe), entonces ''inicial'' será el lado derecho y ''final'' será el lado izquierdo.

El consejo en el video fue que casi siempre debes usar el inicio / final en lugar de izquierda / derecha a menos que tengas un requisito específico para absoluta izquierda / derecha.

Considere la típica ''forma'' de una etiqueta y un campo de texto. Si utiliza restricciones iniciales / finales, obtendrá la etiqueta a la izquierda y el campo de texto a la derecha para una configuración regional en inglés y la etiqueta a la derecha, campo de texto a la izquierda para una configuración regional en hebreo.

Si creó una aplicación para niños donde enseñaba de izquierda a derecha y siempre quiso el botón ''izquierda'' a la izquierda de la pantalla, entonces las restricciones izquierda / derecha serían apropiadas