Багато наведених вище відповідей оманливі або застарілі. Станом на 2017 г. (можливо , набагато раніше) інтерфейс будівельник робить підтримку scrollviews з вмістом автоматично розміру. Фокус у тому, що XCode надає особливе, нестандартне значення обмеженням між прокручуваним переглядом та вмістом усередині нього. Ці "внутрішні" обмеження насправді не вплинуть на розмір вмісту, як ви могли б очікувати в іншому випадку.
Це означає, що ви можете, наприклад, закріпити свій прокручувальний перегляд внизу основного перегляду з нульовим полем, а також закріпити вміст прокручуваного перегляду в нижній частині прокручуваного перегляду з нульовим полем, але вміст цим фактично не розтягнеться. Натомість вміст отримає самостійно визначений розмір (докладніше нижче), і це також буде розмір області, що прокручується, у режимі прокрутки.
Подумайте про це так - Існує асиметрія обмежень прив'язки до перегляду прокрутки: Обмеження від перегляду прокрутки до "зовнішнього" (батьківського) світу визначають розмір та положення прокручування, як зазвичай. Але обмеження "всередині" перегляду прокрутки насправді встановлюють розмір і положення області прокрутки перегляду прокрутки, прив'язуючи її до вмісту.
Це абсолютно неочевидно, тому що коли ви йдете встановлювати обмеження, XCode завжди буде пропонувати поточний інтервал, і вам ніколи не спаде на думку навмисно змінити обмеження, спрямовані всередину і зовні, таким чином, щоб конфліктувати. Але ви можете, і вони мають значення, описане вище: один контролює макет прокрутки, а другий - розмір області прокручуваного вмісту.
Я випадково натрапив на це, а потім, побачивши, як це спрацювало, привело мене до цієї статті, яка повністю це пояснює і цитує для цього джерело документації Apple:
https://spin.atomicobject.com/2014/03/05/uiscrollview-autolayout-ios/
Остання важлива інформація про самостійно визначений розмір вмісту: Ви можете відчути, що знаходитесь тут у catch-22, оскільки зазвичай розмір вмісту становить, наприклад, ширина батьківського подання, але в цьому випадку батьківським є перегляд прокрутки та як описано вище - обмеження не вплине на розмір вашого вмісту. Відповідь тут полягає в тому, щоб пам’ятати, що ви можете обмежувати елементи елементами, які не знаходяться безпосередньо в сусідній з вашою ієрархією подання: наприклад, Ви можете встановити ширину свого подання вмісту на ширину основного подання, замість того, щоб марно намагатися змусити прокручувати перегляд. для вас.