はい、st3fanは正しいです。UIScrollViewのcontentSizeプロパティを設定する必要があります。ただし、この目的で自動レイアウトをオフにしないでください。コードなしで、IBのみの自動レイアウトを使用してUIScrollViewのcontentSizeを簡単に設定できます。
自動レイアウトを使用する場合、UIScrollViewの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を適切に計算するには制約が少なすぎる場合は、レイアウトのあいまいさを通知するために、ViewControllerシーンアイテムの近くに小さな赤いボタンが表示されます。
多くのサブビューがある場合、それは制約の「チェーン」である可能性があります。DanyalAytekinの回答のように、上から上へのサブビュー、サブビュー間の高さとスペース、および下から下へのサブビューです。
ただし、実際には、ほとんどの場合、必要なサイズの空のビューを追加し、scrollViewの上下左右のスペースを0に設定する方が便利です。
このビューを「コンテンツビュー」として使用できます。つまり、他のすべてのサブビューを配置できます。その上に、またはすでに多くのサブビューがあり、それらを移動してレイアウトを再度設定したくない場合は、この補助ビューを既存のサブビューに追加して非表示にすることができます。
scrollViewをスクロール可能にするには、計算されたcontentSizeがscrollViewサイズよりも大きくなければなりません。