UITextView внутри UIScrollView не отображает длинный текст - PullRequest
0 голосов
/ 28 апреля 2018

У меня есть UITextView внутри UIScrollView. если я пытаюсь отобразить длинный текст с определенным размером шрифта, текст не отображается. С более коротким текстом или уменьшением размера шрифта текст появляется снова. Что я делаю неправильно?

Снимок экрана автопоставки здесь (выбранный элемент - это текстовое представление): enter image description here

1 Ответ

0 голосов
/ 29 апреля 2018

UITextView наследуется от UIScrollView

open class UITextView : UIScrollView, UITextInput, UIContentSizeCategoryAdjusting

Так что не рекомендуется размещать ScrollView внутри scrollView. Причина, по которой вы не видите длинный текст в UITextView, заключается в том, что UITextView стал прокручиваемым. Также вы не указали ширину содержимого scrollView, поэтому значение рассчитывается как одна строка вашего длинного текста. Но вы можете прокрутить его, потому что вы прокрутите scrollView. Лучше всего установить метку внутри scrollview и установить метку numberOfLines = 0. Сделайте нижний отступ метки в нижней части scrollView и добавьте несколько элементов в верхней части метки, и вы получите прокручиваемый текст.

Я только что понял, что вам не нужен scrollView для размещения вашего длинного текста.

Вы можете использовать только UITextView для своих нужд.

  1. Удалить ваш scrollView.
  2. Добавить UITextView.
  3. Установите ограничения, как описано, и сопоставьте их со скриншотом.
    • Верхнее пространство для ReadingTimeLabel
    • Выравнивание нижней части к Superview / Руководство по макету нижней части
    • Ведущий пробел в Superview
    • Трейлинг к Superview

UITextViewConstraints

И вы получите результат как на скриншотах

Верхняя часть скроллера:

enter image description here

Прокручиваемое дно:

enter image description here

Примечание. Вы можете отключить редактирование UITextView в инспекторе атрибутов.

Но если вам по какой-то причине нужен вид прокрутки: Установите ограничения, как описано, а также сопоставьте их, как показано на скриншотах.

  1. Добавление ограничений scrollView (Superview - это вид, в котором размещается scrollView): -Сверху места для ReadingTimeLabel Выровняйте нижнюю часть к Superview / Bottom Layout Guide -Выравнивание, ведущее к Superview Выровнять трейлинг к Superview

  2. Пожалуйста, UIView внутри scrollView. Используйте это как контейнер.

  3. Добавить ограничения для контейнера. (Superview это scrollView) Выравнивание, ведущее к Superview -Выберите Трейлинг в Superview -Top Space для SuperView - нижнее пространство для SuperView -Равная ширина для SuperView

  4. Добавьте UILabel внутри контейнера. (Superview - контейнер).

  5. Добавить ограничения для UILabel. Выравнивание, ведущее к Superview -Выберите Трейлинг в Superview -Top Space для SuperView - нижнее пространство для SuperView

  6. Для метки установите Линии = 0 в Инспекторе атрибутов или используйте код

label.numberOfLines = 0

scrollView constraints

container constraints

label constraints

И вы получите результат как на скриншотах

Верх с прокруткой

result 1

Нижняя часть скроллера

result 2

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