以下のように私はscrollviewを持っており、UIViewControllerのルートビューを追加したいと思います。私はそれが上、右、下、左に制約されているとき、私は赤い色が画面全体を占めることを期待しています。これは明らかに機能しますが、すべての子ビューをラップするスクロールビューにサブビューを追加します。それをどうやってやりますか?UIScrollViewコンテナを操作するサブビューを他のすべてのビューに制約するにはどうすればよいですか?
私はビューを追加しましたが、ラッパービューからUIScrollViewの境界に設定されているこの時間以外は同じ制約を設定しています。青の背景色はどこにも表示されません。また、これが悪い考えであると指摘しても気になりませんが、私はちょうど底に拘束することができ、必要に応じてスクロールビューのコンテンツサイズを自動的に延長することができます。これは、私がラッパーなしでスクロールビュー内のすべてのサブビューを持っていて、最後のビューがコンテンツサイズを拡張すると機能すると思われます。
scrollView = UIScrollView(frame: view.bounds)
scrollView?.showsVerticalScrollIndicator = true
scrollView?.backgroundColor = .red
scrollView?.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(scrollView!)
scrollView?.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
scrollView?.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true
scrollView?.rightAnchor.constraint(equalTo: view.rightAnchor).isActive = true
scrollView?.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
//setup wrapper view
let subviewWrapper = UIView()
subviewWrapper.translatesAutoresizingMaskIntoConstraints = false
scrollView?.addSubview(subviewWrapper)
subviewWrapper.backgroundColor = .blue
subviewWrapper.topAnchor.constraint(equalTo: (scrollView?.topAnchor)!).isActive = true
subviewWrapper.leftAnchor.constraint(equalTo: (scrollView?.leftAnchor)!).isActive = true
subviewWrapper.rightAnchor.constraint(equalTo: (scrollView?.rightAnchor)!).isActive = true
subviewWrapper.bottomAnchor.constraint(equalTo: (scrollView?.bottomAnchor)!).isActive = true
これは間違いなく動作しているようですが、過去には見えないものは、私の 'rightAnchor'が正しく動作していないようです。私はcontentView(subviewWrapper)をscrollViewの 'rightAnchor'に制限します。これは、私にscrollAnd幅に一致するwidthAnchorを与えなければならないと予想される結果を与えません。特定の理由があるのですか、何か間違っていますか? – user3832583
subviewWrapperの右アンカーを設定して、何を達成しようとしていますか?スクロールが垂直方向に制限されるようにしようとしていますか? – vacawama
それは私がやろうとしていることです。私は幅のアンカーに設定して、それは動作するようです。私はちょうど他の方法が動作しない理由を理解していない。本当に大したことではありませんでした。私はそれの外観が気に入らなかったので、なぜこれが行われたかについての特定の理由があるかどうか尋ねると思いました。 – user3832583