UITextView не прокручивается в ландшафтном режиме (Swift)

#ios #swift

#iOS #swift

Вопрос:

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

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

Я перепробовал все следующие, по одному и объединил без какой-либо удачи:

 textview.showsVerticalScrollIndicator = true
textview.showsHorizontalScrollIndicator = true
textview.contentSize = CGSize(width: 2 * textview.frame.size.width, height: 2 * textview.frame.size.height)
textview.isScrollEnabled = true
 

Я попытался вставить их viewDidLayoutSubviews , снова безуспешно.

(Я тоже пытался textview.contentSize = textview.bounds.size * 2 , но получал сообщения об ошибках Cannot assign value of type 'Int' to type 'CGSize' и Cannot convert value of type 'CGSize' to expected argument type 'Int' .)

Как мне заставить прокрутку работать в ландшафтном режиме?

Ответ №1:

Выберите ориентацию, поддерживаемую устройством, затем ОК

8888


добавьте следующий код для переопределения оператора, затем ОК, чтобы удалить сообщения об ошибках

 func *(size: CGSize, ratio: Int) -> CGSize {
    return CGSize(width: size.width * CGFloat(ratio), height: size.height * CGFloat(ratio))
}
 

Комментарии:

1. Спасибо dengST30 — это оказалось проблемой ограничения.

Ответ №2:

Решаемая:

Сначала я создал новый проект только с UIView и UITextField и обнаружил, что он отлично прокручивается как в книжном, так и в альбомном режиме.

Думая, что что-то еще мешает прокрутке, я начал удалять вещи. После удаления класса, к которому принадлежал UIView, я заметил, что цвет фона отличался в портретной и альбомной ориентации (в портретной ориентации цвет был моим цветом раскадровки, а в альбомной — черным).

В конце концов, это оказалось ограничением — в широком режиме я попытался соединить верхнюю и нижнюю части вида с фиксированной высотой с видами выше и ниже, которые были разделены большим пространством, чем эта высота. (Чего я не понимаю, так это почему я не получал сообщения об ошибках ограничения …)