はい、st3fanは正しいです。UIScrollViewのcontentSizeプロパティを設定する必要があります。ただし、この目的で自動レイアウトをオフにしないでください。コードなしで、IBのautolayoutのみでUIScrollViewのcontentSizeを簡単に設定できます。
UIScrollViewのautolayout contentSizeを直接設定しない場合、UIScrollViewのすべてのサブビューの制約に基づいて計算されることを理解することが重要です。そして、必要なのは、両方向のサブビューに適切な制約を提供することだけです。
たとえば、サブビューが1つしかない場合は、高さとスペースを上から下からスーパービュー(つまり、この場合はscrollView)に設定できますcontentSize.heightは合計として計算されます
Vertical Space (aSubview.top to Superview.top) + aSubview.height + Vertical Space (aSubview.top to Superview.top)
contentSize.widthは、水平方向の制約から同様に計算されます。
contentSizeを適切に計算するための制約が少なすぎる場合は、ビューのコントローラーシーンアイテムの近くに小さな赤いボタンが表示され、レイアウトのあいまいさを通知します。
多くのサブビューがある場合、それは制約の「チェーン」である可能性があります。DanyalAytekinの回答のように、サブビュー間の最上部から最上位のサブビュー、高さとサブビュー間の最下部のサブビューとスペース。
しかし実際には、ほとんどの場合、必要なサイズの空のビューを追加し、scrollViewの上下左右のスペースを0に設定する方が便利です。
このビューは「コンテンツビュー」として使用できます。つまり、他のすべてのサブビューを配置できます。その上に、またはすでに多くのサブビューがあり、それらを移動してレイアウトを再度設定したくない場合は、この補助ビューを既存のサブビューに追加して非表示にすることができます。
scrollViewをスクロール可能にするには、計算されたcontentSizeをscrollViewのサイズより大きくする必要があります。