Різниця між leftAnchor та LeadAnchor?


119

Я працюю з обмеженнями в Swift для iOS, і більшість конвенцій / документації про іменування роблять речі досить зрозумілими, але одне, що нещодавно мене заплутало, - це дві пари класу NSLayoutXAxisAnchor:

leadingAnchor, leftAnchor

разом з

trailingAnchor, rightAnchor

Коли я встановив обмеження програмно у своєму додатку для iOS, я виявив, що можу використовувати їх повністю взаємозамінно. Якщо я використовую LeadAnchor, запускаю програму і спостерігаю за поведінкою, а потім використовую leftAnchor, запускаю програму та спостерігаю за поведінкою, вона функціонує точно так само.

Я перевірив документацію від developer.apple.com, і результати навіть абсолютно однакові (ігноруючи різницю в назвах). Наприклад, порівняння провідногоAnchor та leftAnchor:

"Використовуйте цей якір для створення обмежень з переднього краю перегляду. Ви можете поєднати цей якір лише з підмножиною якорів NSLayoutXAxisAnchor. Ви можете об'єднати LeadAnchor з іншим провіднимAnchor, trailingAnchor або centerXAnchor. Для отримання додаткової інформації див клас NSLayoutAnchor. Довідка. "

порівняти з:

"Використовуйте цей якір для створення обмежень з лівого краю виду. Ви можете поєднати цей якор лише з підмножиною якорів NSLayoutXAxisAnchor. Ви можете об'єднати leftAnchor з іншим leftAnchor, rightAnchor або centerXAnchor. Для отримання додаткової інформації див клас NSLayoutAnchor. Довідка. "

Хтось знає, чи є якась цільова різниця між цими властивостями?

Відповіді:


272

Про це висвітлювалося (коротко) в одному з відеозаписів WWDC 2015 на « Таємниці автолаутету» (я думаю, це було частиною 1, але обидва варто переглянути).

Ліві та праві обмеження абсолютні, вони завжди будуть посилатися на лівий / правий екран або елемент керування. Локальність пристрою впливає на провідні та кінцеві обмеження; У місцях, де напрям читання ліворуч праворуч (англійська, французька, іспанська тощо), ведуче та ліворуч (і трейлінг & праворуч) можна використовувати взаємозамінно. У місцевостях, де напрямок читання справа наліво (наприклад, на івриті, арабській мові), тоді "ведуча" буде правою стороною, а "слід" - лівою стороною.

Порада у відео полягає в тому, що ви майже завжди повинні використовувати провідні / задні, а не ліві / праві, якщо у вас немає конкретних вимог щодо абсолютного ліворуч / праворуч.

Розглянемо типову 'форму' мітки та текстового поля. Якщо ви використовуєте провідні / кінцеві обмеження, то ви отримаєте мітку зліва та текстове поле праворуч для англійської мови та мітку праворуч, текстове поле зліва для івриту.

Якщо ви зробили програму для дітей, де ви навчали зліва направо, і ви завжди хотіли, щоб кнопка "ліворуч" зліва від екрана була б доречною ліво / право обмеження


9
Відмінна інформація, дякую за відповідь. Я б хотів, щоб я подивився відео, тоді я б сам це знав! Я позначу це як прийняту відповідь. Ще раз дякую
Майклу Фурре
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.