2017-01-19 2 views
0

UIViewController画面を完全にはカバーしないUIScrollViewを作成しようとしています。下のスクリーンショットを参照してください。私はいくつかのセグメント化されたコントロールを配置するだけのスペースとイラストの目的です。スクロールビュー(ライトブルー)内にあることを示すために、コンテンツビュー(緑色)を縮小しました。スクロール表示は画面の約半分で、コンテンツ表示は約1,000(任意の高さ)です。UIViewController内に小さなUIScrollViewを追加する

私はすべてを検索しました。ほぼすべてのチュートリアルでは、UIViewControllerを完全にカバーするスクロールビューが表示されています。

私は数時間この作業を試みましたが、私は常にあいまいさのようないくつかの構造的な問題に遭遇しました。 Btw、Xcode 8のSwift 3でこれをやっています。

誰でもこれをやったことがありますか?

任意の応答を評価してください。

デビッド

Screenshot of Interface Builder

答えて

0

サイズあいまいさはあまり限られたサイズのスクロールビューの「構造問題」のではなく、不足している制約の結果ではありません。あなたが定義したものと正確に何が曖昧であるかを知らなくても、あなたが見逃したものに答えることは不可能です。

スクロールビューがスクロールしないという問題がある場合は、コンテンツのビューが垂直スペースで完全に定義されていないため、スーパービュー(コンテンツビュー)の高さを定義できません。つまり、1つの上限制約と1つの下限制約の間に垂直方向のスペース制約が必要です。

これはまた、Appleのドキュメントで三点目に記載されている。ここで

はUIScrollViewのための自動レイアウトのサポートに関するいくつかの注意事項以下のとおりです。一般的には

  • 、自動レイアウトは左、トップを考慮、下端、および右端を表示することができます。つまり、スーパービューの左端にビューを固定すると、スーパービューの境界の最小x値に固定されます。スーパービューの境界線の原点を変更しても、ビューの位置は変わりません。
  • UIScrollViewクラスは、境界の原点を変更してコンテンツをスクロールします。これを自動レイアウトで使用するには、スクロールビュー内の上端、左端、下端、右端がコンテンツビューの端を意味するようになりました。
  • スクロールビューのサブビューの制約は、スクロールビューのコンテンツサイズとして解釈されるサイズを満たす必要があります。 (これは、自動レイアウトに使用されるintrinsicContentSizeメソッドと混同しないでください)。自動レイアウトでスクロールビューのフレームのサイズを変更するには、スクロールビューの幅と高さに関する制約を明示的に指定するか、そのサブツリーの外側のビューに結びついています。
  • スクロールビューのスーパービューなど、スクロールビューのサブツリー外のビューとビューとの間に制約を作成することにより、スクロールビューのサブビューを他のスクロールコンテンツ上に浮動(スクロールしない)のように見せることができます。
+0

ありがとうございます。私はこのようなことに少し慣れているので、私は学び続けるでしょう。 – Davecity

+0

あなたは大歓迎です。 – hoshy

関連する問題