Изменить размер 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).