переднего или заднего горизонтального выравнивания перед iOS 11

Предупреждение: leading or trailing horizontal alignment before iOS 11

Во время компиляции на Xcode 9.1 я получаю предупреждение во время одной из сцен в файле раскадровки. Существуют другие раскадровки (с целью развертывания iOS 10.0), и все же предупреждение отображается на этой конкретной сцене в определенном файле раскадровки.

Предупреждение будет подавлено, если я изменю цель развертывания на iOS 11.0 на сцене, где отображается предупреждение, но я не хочу этого делать.

Кто-нибудь сталкивался с этим делом?

Ответ 1

Для меня проблема была в использовании trailing leading выравнивание по UIButton сам.

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

Но эта функция - только для iOS 11, поэтому используйте стандартное выравнивание влево/вправо, если вы ориентируетесь на более низкие версии iOS.

Самый простой способ выяснить, какой вид вызывает проблему, - это поиск contentHorizontalAlignment="leading" или contentHorizontalAlignment="trailing" в исходном коде для.xib

enter image description here

Ответ 2

Шаг 1:

Просмотрите свою наружную раскадровку в качестве исходного кода: enter image description here

Шаг 2:

Замените все экземпляры:

contentHorizontalAlignment="leading"

с:

contentHorizontalAlignment="left"

Шаг 3:

Замените все экземпляры:

contentHorizontalAlignment="trailing"

с:

contentHorizontalAlignment="right"

Шаг 4:

Скомпилировать и смотреть предупреждение исчезают.

Я нахожу этот подход более простым, когда у вас есть тонна элементов, которые необходимо изменить. В iOS 11 были введены "ведущие" и "конечные", поскольку типы значений contentHorizontalAlignment были введены с iOS 11. iOS 10 не знает о "ведущей" и "задней", которая является причиной предупреждения.

Ответ 3

В журнале сборки перед словом "предупреждение" вы увидите идентификатор Interface Builder в форме "xxx-yy-zzz". Скопируйте и вставьте его в строку поиска Xcode, и он найдет для вас "оскорбительный" элемент управления. Нажмите на результат поиска, и вы попадете прямо в раскадровку с выбранным соответствующим элементом управления. Остальная часть проблемы может быть решена с помощью других ответов.