我正在尝试在UIStackView
内实现UIScrollView
,但是在正确限制它方面遇到了问题。这些是我的constrains
:
func setUpViews() {
view.addSubview(backgroundImage)
view.addSubview(backButton)
view.addSubview(theScrollView)
theScrollView.addSubview(theStackView)
theStackView.addArrangedSubview(emailTextField)
theStackView.addArrangedSubview(anzeigeNameTextField)
theStackView.addArrangedSubview(wishlistHandleTextField)
theStackView.addArrangedSubview(passwordTextField)
theStackView.addArrangedSubview(passwordWiederholenTextField)
theStackView.addArrangedSubview(documentsLabel)
theStackView.addArrangedSubview(signUpButton)
view.addSubview(eyeButtonOne)
view.addSubview(eyeButtonTwo)
backgroundImage.topAnchor.constraint(equalTo: view.topAnchor, constant: -20).isActive = true
backgroundImage.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: 20).isActive = true
backgroundImage.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: -20).isActive = true
backgroundImage.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: 20).isActive = true
backButton.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 30).isActive = true
backButton.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 30).isActive = true
backButton.heightAnchor.constraint(equalToConstant: 30).isActive = true
backButton.widthAnchor.constraint(equalToConstant: 30).isActive = true
theScrollView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 120).isActive = true
theScrollView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 30).isActive = true
theScrollView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -30).isActive = true
theScrollView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
theStackView.topAnchor.constraint(equalTo: theScrollView.topAnchor, constant: 400).isActive = true
theStackView.leadingAnchor.constraint(equalTo: theScrollView.leadingAnchor, constant: 30).isActive = true
theStackView.trailingAnchor.constraint(equalTo: theScrollView.trailingAnchor, constant: -30).isActive = true
theStackView.bottomAnchor.constraint(equalTo: theScrollView.bottomAnchor).isActive = true
theStackView.widthAnchor.constraint(equalTo: theScrollView.widthAnchor).isActive = true
emailTextField.heightAnchor.constraint(equalToConstant: 60).isActive = true
anzeigeNameTextField.heightAnchor.constraint(equalToConstant: 60).isActive = true
wishlistHandleTextField.heightAnchor.constraint(equalToConstant: 60).isActive = true
passwordTextField.heightAnchor.constraint(equalToConstant: 60).isActive = true
passwordWiederholenTextField.heightAnchor.constraint(equalToConstant: 60).isActive = true
documentsLabel.heightAnchor.constraint(equalToConstant: 60).isActive = true
signUpButton.heightAnchor.constraint(equalToConstant: 50).isActive = true
eyeButtonOne.trailingAnchor.constraint(equalTo: passwordTextField.trailingAnchor, constant: -5).isActive = true
eyeButtonOne.centerYAnchor.constraint(equalTo: passwordTextField.centerYAnchor, constant: 10).isActive = true
eyeButtonTwo.trailingAnchor.constraint(equalTo: passwordWiederholenTextField.trailingAnchor, constant: -5).isActive = true
eyeButtonTwo.centerYAnchor.constraint(equalTo: passwordWiederholenTextField.centerYAnchor, constant: 10).isActive = true
}
当显示View
时,StackView放置错误(第一张图片),并且只有在选择了textfield
之后,它才应该一直移动到中央(第二张图片)。
另一个问题是,当我滚动视图时,它可以在x轴和y轴上滚动,但是我限制了它,因此用户只能向上或向下滚动。
最后但并非最不重要的eyeButtons
根本没有显示。
我想我对如何约束StackView
内的ScrollView
内有误解。有人知道我在做什么错吗?