2017-02-20 14 views
0

私はこれを聞いて非常に密集していますが、いくつかの解決策を試してみましたが、私は、scrollViewのサブビューであるより大きなUIViewのサブビューである2つのUIViewを持っています。これらの2つのビューはそれぞれログイン画面&のサインアップ画面で、ユーザーはアプリを適切にアクセスするためにそれらの間をスワイプすることができます。しかし何らかの理由で、スクロールビューはこれらの2つのビューの間で水平にスクロールしません。私が見ているサンプルは、これを達成するためのコードを使用していません。私は制約を厳密に模倣しています。これは馬鹿に聞こえるかもしれませんが、誰かがこの水平スクロールをどのように達成できるかについての提案はありますか?ストーリーボード&自動レイアウトを使用してuiscrollviewを使って水平方向にスクロール

答えて

2

私はscrollViewのサブビューで大きなのUIViewのサブビューある2つのUIViews持っている」

OKを、のはContainerView内部SUB1とSUB2は、(CVそれを呼び出す)があるとしましょう、 ScrollView(SV)内にあります。 Interface Builderで

  • SUB1とSUB2それぞれ300幅
  • CVはSUB1とSUB2サイドバイサイド
  • SV幅は300であるべきで保持するように、600-幅であるべきです - Sub1のみが表示されます

ScrollViewをスクロールするには、コンテンツの幅がそれ自身の幅より大きくなければなりません。 CVのLeadingとTrailingの制約をSVに対して相対的に設定すると、コンテンツの幅が定義されます。

ScrollView

からないセットはとにかく...

SV ...ここにこれらのイメージを持ってしても大丈夫だ願っているそれはあなたの "ContainerView" 制約のように聞こえる - ScrollViewは -

青です

CV - コンテナビューは - ピンク

SUB1とSUB2が黄色である

、スクロールビューで300×300を起動し、両方向中心:

​​

はUIViewのを追加 - これはCVになります - SVに、8,8で240×128(私たちのデフォルトのサイズとを)すぐにそれを変更し、8それぞれの先頭とトップ制約を追加します:

enter image description here

変更CVの幅と高さが600×120に、幅と高さの制約を設定します。ビューの半分は今SVのエッジを越えて、右に拡張します。

enter image description here

は、CVへの2つのサブビューを追加 - デモのために、私はUILabelsを使用しました。幅x高さを50 x 30に設定し、Sub1の位置を8,8に設定します。

enter image description here

Sub1を左、上(8,8)と幅と高さ(50x30)制約を与えます。それはそれはで「固定」し続けます左上CVの:

enter image description here

SUB2の幅と高さ(50x30)制約、および8,8の底部と右/末尾の制約を与えます。これらの制約を設定したら、[フレームの更新]ボタンをクリックして、Sub2ラベルをCVの右下に固定します(IBでは表示されません)。

enter image description here

ここで実際のキー部分は、それぞれ8のCV右/後尾と下限の制約を与えます。これは、自動レイアウトがSVのContentSizeを決定するために使用するものです。アプリを実行すると、今度はSub1からSub2まで水平にスクロールできるはずです。あなたはそれがスクロールにどのように影響するかを確認するためにCVの幅と高さの制限を調整して遊ぶことができ、それはすべての仕事をしていると仮定すると、

enter image description here

。ここ

ソースコード:https://github.com/DonMag/ScrollViewConstraints

希望:)

+0

はい、私はこれが問題であると考えているのに役立ちます。しかし、私はここであなたの言葉の使用によって困惑しています。 「SVとの相対的」と言ったとき、SVとCVを積み重ねて、その前後のエッジを設定することを提案していますか? – Onicha21

+0

ええ、ちょっと混乱しています...私は視覚的な援助をしていきます... – DonMag

+0

あなたは同様の情報を持ったサイトを持っていれば、私もそれを探検することができます – Onicha21

関連する問題