Неправильная перенос слов при изменении строк в viewWillAppear - PullRequest
0 голосов
/ 27 марта 2019

Я пишу приложение, которое использует строку локализаций. Я использую раскадровку для рисования UIControllers и ссылаюсь на выпуск UILabels в исходном коде. Я изменяю текст в viewWillAppear для назначения строки локализации UILabel.text .

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

Я установил UILabel с 0 numbersOfLine, режим LineBreak - перенос слов, увеличение высоты надписи ... но не работает.

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    // TEXT
    commentLabel.text = "*Please connect both devices to the same Wi-Fi network."
}

В раскадровке со строкой по умолчанию это выглядит так:
In storyboard

Но после изменения текста в viewWillAppear он будет выглядеть следующим образом:
After changing text in viewWillAppear
«то же самое» будет разбито на «са» и «я» !!

Может ли кто-нибудь мне помочь?

- Обновление:

Constraits. «Загрузка текста» - это «Подключиться к% Device Name%» Imgur

- Обновление:

Если я не изменяю текст в viewWillAppear, он отображается нормально, как показано ниже. Так что я думаю, что это не та проблема с ограничениями или макетом?
Imgur

Ответы [ 5 ]

1 голос
/ 27 марта 2019

Просто убедитесь, что вы установили эти параметры, чтобы сделать его многострочным с переносом слов

Сначала убедитесь, что вы не добавили какое-либо фиксированное ограничение высоты для вашего ярлыка или суперпредставления

Второе созданиеубедитесь, что для Number of lines установлено значение 0

Третий вариант выбора Work wrap из опции Line break, а также разрешите Autoshrink, если размер шрифта больше, чем его кадр, поэтому шрифт будет автоматическиотрегулируйте относительно минимального размера.

enter image description here

Примечание: Вы также можете добавить "\n", чтобы начать с новой строки

commentLabel.text = "*Please connect both devices to the \n same Wi-Fi network."
0 голосов
/ 27 марта 2019

Если нет ошибки ограничения, результат не имеет смысла.

Таким образом, в вашем интерфейсе дизайна у вас есть другой, как iPhone XS, чем в вашем реальном симуляторе или устройстве, как iPhone XR.Пожалуйста, убедитесь, что оба одинаковы, так что вы получаете то, что вы разрабатываете.

0 голосов
/ 27 марта 2019

Вы должны добавить все constarints из UILabel и Установить линии на 0

Установите для AutoShrink значение minimum font scale

И все готово.

0 голосов
/ 27 марта 2019

Убедитесь, что вы правильно добавили ограничения, особенно нижнее ограничение метки к нижней части представления.

0 голосов
/ 27 марта 2019

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

https://newfivefour.com/swift-ios-add-view-programmatically-autolayout-NSLayoutConstraint.html

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