次のようなビュー階層があります(他の回答と、UIScrollViewを操作するためのAppleの高度なAutoLayoutガイドに基づいています)。
ScrollViewに必要な2ステップは次のとおりです。
ステップ1最初は問題なく動作し、これが結果でした:
positionとsizeには問題ありません。コンテンツサイズ(コンテンツの高さとコンテンツの幅)をInterface BuilderでStep 2と定義するだけです。
次に、ScrollViewの4つのエッジすべてに触れる制約を次のように追加します。
突然、ScrollViewはpositionとsize(frame)であることを認識しなくなります。
他の回答を見て、さまざまな手順を実行しましたが、この問題を解決できないようです。プライバシーの問題により、ストーリーボードのスクリーンショットを投稿できません。
スクロールビューは、最初は少し難しいかもしれません。あなたは本当に3つの部分があります:
したがって、1。は非常に単純明快です。
2番目の部分も、サブビューをスーパービューの内側の端に「固定」する傾向があることを除いて、単純明快です。スクロールビューのサブビューの場合、those制約がcontentSizeを定義します。 またはサブビューに「サイズ」があることを確認する必要があります。
1つのサブビューから始めて、次のようにします。
アプリを実行します。見ているものがわかるように背景色を設定すると想定すると、スクロールビューが期待どおりに配置およびサイズ設定されているはずです...スクロールビューのどこかに座っている100 x 100のサブビューが表示されます...そして、実際のスクロールを行うことができなくなる可能性があります。
戻ってサブビューを、たとえば100 x 800に変更しても、下部の制約がスクロールビュー(サブビューのスーパービュー)の下部に固定されている場合、アプリを再度実行します...あなたサブビューの高さ800 pt全体を上下にスクロールできます。
それについて考える方法は次のとおりです。スクロールビューのコンテンツ-1つまたは多数のサブビューであるかどうかにかかわらず、スクロール可能領域(スクロールビューのcontentSize)を定義するownサイズを定義する必要があります。
それが理にかなっていると思います!
スクロールビューの上部、下部、先頭、末尾の制約をスーパービューに0に設定します。
スクロールビュー内にあるビューを設定し、その上部、下部、先頭、末尾の制約をスーパービューに0に設定します。
スクロールビュー内にあるビューを選択し、サイズインスペクターに移動して、[固有のサイズ]を[プレースホルダー]に設定します。