Подтвердить что ты не робот

Разница между leftAnchor и leadingAnchor?

Я работаю с ограничениями в Swift для iOS, и большинство соглашений об именах/документации делают вещи вполне объяснительными, но одна вещь, которая меня недавно смутила, - это две пары класса NSLayoutXAxisAnchor:

leadingAnchor, leftAnchor

вместе с

trailingAnchor, rightAnchor

Когда я устанавливал ограничения программно в моем приложении iOS, я обнаружил, что могу использовать их полностью взаимозаменяемо. Если я использую leadingAnchor, запустите приложение и наблюдайте за поведением, а затем используйте leftAnchor, запустите приложение и наблюдайте за поведением, он будет функционировать точно так же.

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

"Используйте этот якорь для создания ограничений с передним фронтом представлений. Вы можете объединить этот якорь с подмножеством Якоря NSLayoutXAxisAnchor. Вы можете комбинировать ведущий символ с другой ведущий символ, trailingAnchor или centerXAnchor. Для большего информацию см. в описании NSLayoutAnchor Class Reference."

сравнить с:

"Используйте этот якорь для создания ограничений с левым краем вида. может объединить этот якорь с подмножеством NSLayoutXAxisAnchor якоря. Вы можете комбинировать leftAnchor с другим leftAnchor, a rightAnchor или centerXAnchor. Для получения дополнительной информации см. Ссылка на класс NSLayoutAnchor.

Кто-нибудь знает, есть ли какая-либо разница между этими свойствами?

4b9b3361

Ответ 1

Это было освещено (вкратце) в одном из видео WWDC 2015 о Mysteries of Autolayout (я думаю, что это была первая часть, но оба заслуживают внимания).

Ограничения влево и вправо являются абсолютными, они всегда будут ссылаться на левый/правый экран или элемент управления. Локальные свойства и ограничения на перенос зависят от локали устройства; В местах, где направление чтения слева направо (английский, французский, испанский и т.д.) Ведущие и левые (и задние и правые) могут использоваться взаимозаменяемо. В местах, где направление чтения справа налево (например, иврит), тогда "ведущий" будет правой стороной, а "трейлинг" будет левой.

В видеоролике вы должны всегда использовать только ведущий/трейлинг, а не левый/правый, если у вас нет конкретного требования к абсолютному левому/правому.

Рассмотрим типичную "форму" метки и текстовое поле. Если вы используете ведущие/конечные ограничения, вы получите ярлык слева и текстовое поле справа для английского языка и метку справа, текстовое поле слева для языкового стандарта на иврите.

Если вы создали приложение для детей, в котором вы преподавали слева направо, и вам всегда нужна кнопка "влево" слева от экрана, то ограничения слева и справа будут соответствовать