#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:
Выберите ориентацию, поддерживаемую устройством, затем ОК
добавьте следующий код для переопределения оператора, затем ОК, чтобы удалить сообщения об ошибках
func *(size: CGSize, ratio: Int) -> CGSize {
return CGSize(width: size.width * CGFloat(ratio), height: size.height * CGFloat(ratio))
}
Комментарии:
1. Спасибо dengST30 — это оказалось проблемой ограничения.
Ответ №2:
Решаемая:
Сначала я создал новый проект только с UIView и UITextField и обнаружил, что он отлично прокручивается как в книжном, так и в альбомном режиме.
Думая, что что-то еще мешает прокрутке, я начал удалять вещи. После удаления класса, к которому принадлежал UIView, я заметил, что цвет фона отличался в портретной и альбомной ориентации (в портретной ориентации цвет был моим цветом раскадровки, а в альбомной — черным).
В конце концов, это оказалось ограничением — в широком режиме я попытался соединить верхнюю и нижнюю части вида с фиксированной высотой с видами выше и ниже, которые были разделены большим пространством, чем эта высота. (Чего я не понимаю, так это почему я не получал сообщения об ошибках ограничения …)