私はかなり新しいiOS開発者で、スクロールビューの最初の必要性を迎えています。デザインが必要なページは少し複雑です。私はそれを正しくレイアウトするために苦労していたので、スーパーシンプルなシーンを作成することにしました。そこでUIScrollViewを動作させる方法を理解できるようにしました。どうやら、うまくいきませんでしたし、いくつかのチュートリアルの後に私は立ち往生しています。iOS UIScrollView、私は何を誤解していますか?私はスクロールするためのスクロールビューを得ることができません
私はこの記事の最後でのXcode 8.1とスウィフト3
スクリーンショットで働いています。
私は、スクロールビューと2つのラベル付きの子ビューからなるシーンを持っています。私は、スクロールを起こさせようとするために〜700pt離れたラベルを設定しました。スクロールせずに、最初のラベルしか見ることができません。さらに、子ビューは完全な高さに拡張されません。
私のスクロールビューにスーパービューの側面にピンを固定する制約があることをスクリーンショットで見ることができます。
子ビューは同じです。
ラベル制約は、それらを子ビュー内に配置し、互いから700ptを配置します。私はこれによって、スクロールを起こすのに必要な高さがビューに与えられると考えました。制約エラーはありません。
赤いチャイルドビューが縦のスペースを埋めるようにしてからスクロールしたいと考えています。この時点では、何かがスクロールしていれば、レイアウトを取ることになりました。何もありませんが、私は何を得ませんか?
スクリーンショット:
(私はまだ新しいSOユーザーだから起因するリンク限度まで除去)
EDIT(6/12/16):
私はいくつかの変更を加えましたもう少し近づいた。主に、ラベルの1つをスクロールビューと同じ高さに設定することを他の場所で私に提案しました。これは今、私に "バウンス"効果を与えます。これは、物がスクロールのようなものであることを意味します。ただし、下に隠れる2番目のラベルが切り取られるため、1つのコンテンツ画面しか扱っていません。物事が立つのはここ
です:
edited hierarchy
edited screenshot
はありません。明示的に設定しないと、コンテンツのサイズ(子ビューのサイズ)が計算されます。子ビューをスクロールビューに制限したため、子ビューはスクロールビューと同じサイズになります。子ビューとスクロールビューの間の制約を設定して、子ビューがスクロールビューよりも大きくなるようにしてください(例えば、 "child view leading == scroll view leading"を編集し、定数を-300に設定する)。 – Paulw11
@ Paulw11ラベルがコンテンツサイズを暗示していることまた、コンテンツビューにheight/90という制約をtop/bottom/leading/trailingと一緒に入れました。それ以外の場合は、エラーを投げていた。だから明白な高さを持っています。 – Philip
これは、コンテンツサイズを試して推測しますが、ビューをスクロールビューに制限しているため、表示されるコンテンツのサイズは、水平方向の間隔に基づいて表示されている画面の外側にあることを前提にしています。ボタンの前縁をビューの前縁と他のボタンの後端に拘束し、間隔を維持するとどうなるかを確認してください。あなたは紛争に終わるはずです – Paulw11