Изменить размер UIView внутри UIScrollView с помощью AutoLayout для прокрутки?
У меня есть макет следующим образом (с помощью AutoLayout, iPad):
![Xcode screenshot]()
UIScrollView
имеет верхнее, нижнее, ведущее, трейлинг-пространство для супервизора как 0. UIView
также имеет все четыре одинаковых ограничения. Второй UILabel
имеет свою высоту, установленную на 0 программно (так как здесь показан более чем экранный текст). Кроме того, эти четыре ограничения контактов также были установлены с UIView
до UIScrollView
.
Когда XIB загружен, этот UILabel
отображает длинные строки текста правильно. Но прокрутка не работает. Это скриншот запуска приложения на iPad:
![enter image description here]()
Желтый фон установлен для внешнего вида, а серый - для UIView
. Если вы внимательно посмотрите в конце скриншота, текст UILabel
, кажется, переполняется через UIView
.
Я подозреваю, что, поскольку UIView
не может "захватить" размер его субвью, UIScrollView
не может также рассчитать его содержимое (нет причин для того, чтобы полоса прокрутки работала, если ее контентный вид равен только одному экрану), Почему это происходит, даже когда UILabel
явно является подразделением UIView
? Если мои подозрения верны, , как установить высоту UIView
, равную фактическому размеру содержимого, чтобы мой UILabel
был правильно "содержался" в нем?
(Установка высоты UIView
, статическая статика не является параметром).
NB: Протестировано XIB без UIView
и только один UILabel
(с длинным текстом) внутри UIScrollView
. Теперь прокрутка работает (поскольку, я полагаю, представление прокрутки может рассчитать размер его содержимого).
NB2: Я также пробовал ответы в этот вопрос SO и этот пост но мой UIView
просто не выходит за пределы экрана. (Меня интересует только горизонтальная прокрутка)
Ответы
Ответ 1
Проблемы с AutoLayout очень сложно объяснить с помощью текста. У меня была такая же проблема. Я нашел решение в этом видео. надеюсь, это тоже поможет вам.
https://www.youtube.com/watch?v=UnQsFlMGDsI
Это видео демонстрирует, как создать UIScrollView, в котором есть некоторые в верхней части экрана и в нижней части экрана в Autolayout. Размер содержимого UIScrollView автоматически настраивается размер экрана или размер содержимого таким образом, чтобы на более мелких устройствах прокрутка активна и на более крупных устройствах прокрутка не активен, потому что он не нужен. UIButton ниже UITextFields всегда остается в нижней части экрана, и все работает на всех iPhone (iPhone 4/5/6/6 Plus).