ScrollView 滚动出约束
ScrollView scrolls out of constraints
我里面有一个UIScrollView
和一个UIStackView
。我的问题是,滚动时,内容会超出其限制。为什么会这样?我必须设置一些其他的 constraints
吗?
这些是我的 constraints
:
view.addSubview(theScrollView)
theScrollView.addSubview(theStackView)
theScrollView.topAnchor.constraint(equalTo: theLabel.bottomAnchor, constant: 20).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).isActive = true
theStackView.leadingAnchor.constraint(equalTo: theScrollView.leadingAnchor).isActive = true
theStackView.trailingAnchor.constraint(equalTo: theScrollView.trailingAnchor).isActive = true
theStackView.bottomAnchor.constraint(equalTo: theScrollView.bottomAnchor).isActive = true
theStackView.widthAnchor.constraint(equalTo: theScrollView.widthAnchor).isActive = true
theLabel
是顶部的 "Konto erstellen"。知道我怎样才能适应它吗?
如果有任何不清楚的地方,请告诉我。
在你的 SignUpViewController
class...
- 您将
theScrollView
添加到 view
- 您将
theStackView
添加到 theScrollView
- 您向
theStackView
添加了视图
- theStackView.addArrangedSubview(emailView)
- theStackView.addArrangedSubview(anzeigeNameView)
- theStackView.addArrangedSubview(用户名视图)
- 美国。
但是然后您将其他视图添加到view
:
- view.addSubview(emailTextField)
- view.addSubview(anzeigeNameTextField)
- view.addSubview(用户名文本字段)
然后将这些视图限制为 theStackView
中的视图。当您滚动内容时,那些视图会随着堆栈视图的子视图一起移动,但它们 在滚动视图的层次结构之外。
相反,您需要这样做:
view.addSubview(theScrollView)
theScrollView.addSubview(theStackView)
theStackView.addArrangedSubview(emailView)
emailView.addSubview(emailTextField)
//view.addSubview(emailTextField)
theStackView.addArrangedSubview(anzeigeNameView)
anzeigeNameView.addSubview(anzeigeNameTextField)
//view.addSubview(anzeigeNameTextField)
theStackView.addArrangedSubview(usernameView)
usernameView.addSubview(usernameTextField)
//view.addSubview(usernameTextField)
现在你的文本字段将是它们各自视图的子视图,它们是堆栈视图的排列子视图。
执行此操作后您可能需要调整约束。
我里面有一个UIScrollView
和一个UIStackView
。我的问题是,滚动时,内容会超出其限制。为什么会这样?我必须设置一些其他的 constraints
吗?
这些是我的 constraints
:
view.addSubview(theScrollView)
theScrollView.addSubview(theStackView)
theScrollView.topAnchor.constraint(equalTo: theLabel.bottomAnchor, constant: 20).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).isActive = true
theStackView.leadingAnchor.constraint(equalTo: theScrollView.leadingAnchor).isActive = true
theStackView.trailingAnchor.constraint(equalTo: theScrollView.trailingAnchor).isActive = true
theStackView.bottomAnchor.constraint(equalTo: theScrollView.bottomAnchor).isActive = true
theStackView.widthAnchor.constraint(equalTo: theScrollView.widthAnchor).isActive = true
theLabel
是顶部的 "Konto erstellen"。知道我怎样才能适应它吗?
如果有任何不清楚的地方,请告诉我。
在你的 SignUpViewController
class...
- 您将
theScrollView
添加到view
- 您将
theStackView
添加到theScrollView
- 您向
theStackView
添加了视图- theStackView.addArrangedSubview(emailView)
- theStackView.addArrangedSubview(anzeigeNameView)
- theStackView.addArrangedSubview(用户名视图)
- 美国。
但是然后您将其他视图添加到view
:
- view.addSubview(emailTextField)
- view.addSubview(anzeigeNameTextField)
- view.addSubview(用户名文本字段)
然后将这些视图限制为 theStackView
中的视图。当您滚动内容时,那些视图会随着堆栈视图的子视图一起移动,但它们 在滚动视图的层次结构之外。
相反,您需要这样做:
view.addSubview(theScrollView)
theScrollView.addSubview(theStackView)
theStackView.addArrangedSubview(emailView)
emailView.addSubview(emailTextField)
//view.addSubview(emailTextField)
theStackView.addArrangedSubview(anzeigeNameView)
anzeigeNameView.addSubview(anzeigeNameTextField)
//view.addSubview(anzeigeNameTextField)
theStackView.addArrangedSubview(usernameView)
usernameView.addSubview(usernameTextField)
//view.addSubview(usernameTextField)
现在你的文本字段将是它们各自视图的子视图,它们是堆栈视图的排列子视图。
执行此操作后您可能需要调整约束。