私は2日間かけて、混合レイアウトと純粋なオートレイアウトアプローチのさまざまなソリューションを試して、オートレイアウトの前の簡単なスクロールビュー設定を実現しましたが、これは公式になりました-私は愚かすぎます。私はこれをストーリーボードで主に設定しています(まあ、それはまさにそれがそうである方法です)。
だからここに助けを求める私の嘆願があります。
ビューツリー:
UIView
-UIView
-UIView
..-UIScrollview
...-UIButton
...-UIButton
...-UIButton
ボタンは水平にスクロールすることになっています(左から右、およびその逆)。誰かお願いできますか私は、この使用して、純粋な自動レイアウトを達成するための制約を設定する方法を知っています?
-
私は次のように混合アプローチを試しました:
UIView
- UIView
- UIView
..-UIScrollview
...-UIView (contentview)
....-UIButton
....-UIButton
....-UIButton
...との固定幅と高さの制約を設定contentview
するtranslatesAutoresizingMaskIntoConstraints
Appleのテクニカルあたりなどの設定。ボタンとスクロールビューは、制約を使用して設定されます。これはスクロールビューのスクロールを取得します(そうです)残念ながら、スクロールが遠すぎます!私の知る限りでは、スクロール幅は、コンテンツビューの設定から何とか2倍になります??? !!! ???
純粋なオートレイアウトアプローチも試しましたcontentview
。を除くすべてのビューはtranslatesAutoresizingMaskIntoConstraints=NO
ですself.view
。ボタンには幅と高さの制約があり、スクロールビューの4つの端すべてに固定されています。何もスクロールしません。
だから私はそれを正しく機能させることができない理由に完全に困惑しています。どんな助けでも大歓迎です、そしてあなたが他の情報を必要とするならば、尋ねてください!
ソリューションを含む更新されたスクリーンショット -buttonZ制約:
EDIT @ Jamie Forrest したがって、解決策は最後のボタンの間違った末尾制約であることが判明しました。6441の代わりに、私が設定した値は負の-6441でした。トリッキーなのは、ストーリーボードで値を設定するときに、ピンツールバーに2つのオプションがあることです。
現在のキャンバス値は負(スクロールなし)で、下のオプションは正(スクロールをアクティブ化)です。これは私が愚かではないが、少なくとも半盲だと思います。私の弁護のために、XCodeが「正しくない」設定のエラーを表示しないことは、いくらか気になるのではないですか?
EDITED AGAIN 今はこれが面白い... -6441(なしスクロール)から6441の末尾に値を変更してスクロールを可能にしました。しかし、私の古くからの友人、「コンテンツサイズが多すぎます」が戻ってきたため、コンテンツサイズは本来の2倍になりました。正しいコンテンツスクロールを取得するための解決策は、末尾の制約をゼロに設定することでした。これはStoryboardで作業する場合は明らかではありませんが、@ Infinity Jamesのコードを見ると、本来あるべき状態です。
contentSize
に設定することはできませんUIScrollView
。そして、contentSize
スクロールできる量を定義するのはそれです。そのため、最終的にはどこかに手動で設定する必要があります。それ以外の場合は、レイアウト拘束を使用して、相互に関連するビューフレームを設定できます。