ビューが画面上にあまりにも多く画面に収まらない場合、垂直方向にスクロールしなければならない単純なレイアウトを作ろうとしています。Swift:私のUIScrollViewで自動レイアウト制約が機能しない
だから、これは私がこれまで持っているものです。
私はscrollviewを作成し、その
let mainScrollView: UIScrollView = {
let scrollView = UIScrollView()
scrollView.isUserInteractionEnabled = true
scrollView.translatesAutoresizingMaskIntoConstraints = false
return scrollView
}()
let containerView: UIView = {
let view = UIView()
view.backgroundColor = .lightGray
view.translatesAutoresizingMaskIntoConstraints = false
return view
}()
のようなコンテナビューは、その後、私はコンテナビューを追加し、メインビューにscrollviewを追加しましたスクロールビューとコンテナビューに表示されるラベルのペア
view.addSubview(mainScrollView)
mainScrollView.addSubview(containerView)
containerView.addSubview(firstLabel)
containerView.addSubview(secondLabel)
スクロールビューをメインビューに、コンテナビューをスクロールビューに固定しました。その後、私はこの問題は、何らかの理由でscrollviewが、それは高さだし、それが垂直方向にスクロールしない計算することができないということである。この
mainScrollView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
mainScrollView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
mainScrollView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
mainScrollView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
containerView.topAnchor.constraint(equalTo: mainScrollView.layoutMarginsGuide.topAnchor).isActive = true
containerView.bottomAnchor.constraint(equalTo: mainScrollView.layoutMarginsGuide.bottomAnchor).isActive = true
containerView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
containerView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
firstLabel.centerXAnchor.constraint(equalTo: containerView.centerXAnchor).isActive = true
firstLabel.topAnchor.constraint(equalTo: containerView.topAnchor, constant: 30).isActive = true
firstLabel.widthAnchor.constraint(equalToConstant: 50).isActive = true
firstLabel.heightAnchor.constraint(equalToConstant: 20).isActive = true
secondLabel.centerXAnchor.constraint(equalTo: containerView.centerXAnchor).isActive = true
secondLabel.topAnchor.constraint(equalTo: firstLabel.bottomAnchor, constant: 750).isActive = true
secondLabel.widthAnchor.constraint(equalToConstant: 50).isActive = true
secondLabel.heightAnchor.constraint(equalToConstant: 20).isActive = true
のようなコンテナビュー内のラベルを追加し始めました。 2番目のラベルは、画面上で「低」すぎるため、目に見えません。
コンテナビューの下部の制約を2番目のラベルの下部に設定しようとしましたが、正直なところどこにも行きません。
私には何が欠けていますか?コンテナビューの特定の高さを設定せずに、スクロールビューを自動レイアウトでスクロールさせるための制約を設定するにはどうすればよいですか?
ありがとうございます、あなたは私に正しいヒントを与えて、私は問題を解決しました。私は将来、この質問を見つけるかもしれない読者のための参考資料として回答を提出しました。 – Luca
@ルカ問題はありません!コードで更新しようとしていた。 :) NSLayoutConstraint.activate([])もチェックアウトしてください。私はそれがとても便利だと分かった。 – GoodSp33d
うわー、本当に便利です!確かにそれを使用するつもり、提案のおかげで – Luca