Многоканальный ярлык сломан из-за ограничения позиции - PullRequest
0 голосов
/ 09 июня 2018

На странице моего приложения я хотел бы добавить текст метки поверх нижней панели.

Мне удалось это, добавив следующее ограничение:

BottomBarImage.top= Label.bottom + 24

Проблема в том, что на этикетке планируется отображать 2-3 строки текста.Я проверил на симуляторе, и в результате отображается только одна строка.

Важное примечание: при удалении ограничения строки в метке отображаются правильно (но, конечно, позиция метки неверна)

Как мы можем исправить проблему мультилинии?

Спасибо

1 Ответ

0 голосов
/ 09 июня 2018

Проблема в том, что ваши ограничения недостаточны.

Метка, которая не находится под автоматическим макетом, просто сидит там, инертна;во время макета его размер равен размеру, указанному вами в раскадровке.

Но как только вы добавляете к нему ограничение, метка попадает в режим автоматического макета.Это меняет все.Ярлык под автоматическим макетом имеет размер с самообладанием : он автоматически адаптируется к размеру содержимого.Он автоматически адаптируется к необходимой высоте, но только если его ширина фиксирована (чтобы он знал, когда обернуть).Вы не задали никаких ограничений width для этой метки, а также не указали preferredMaxLayoutWidth, поэтому механизм автоматического размещения не знает, как это сделать.

Итак, чтобы решить эту проблему, добавьте ограничение ширины к вашей метке или присвойте ей preferredMaxLayoutWidth.Или, если вы знаете оба измерения, задайте для него ограничение ширины и высоты.(И убедитесь, что значение numberOfLines было изменено на 0; по умолчанию установлено значение 1, которое содержит только одну строку.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...