ScrollView 滚动出约束
Posted
技术标签:
【中文标题】ScrollView 滚动出约束【英文标题】:ScrollView scrolls out of constraints 【发布时间】:2020-03-04 13:15:20 【问题描述】:我在其中有一个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”。知道我怎么能适应它吗?
如果有任何不清楚的地方,请告诉我。
【问题讨论】:
尝试过使用视图层级调试器调试视图吗? 是的,stackView
和 scrollView
就位,但不知何故,stackView
内的项目在它之外
检查theScrollView.clipsToBounds = true
是的。 scrollVIew
和 `stackView`
这是我的完整项目:github.com/DieGlueckswurst/Wishlist 也许有帮助
【参考方案1】:
在您的SignUpViewController
班级中...
theScrollView
添加到view
您将theStackView
添加到theScrollView
您将视图添加到theStackView
StackView.addArrangedSubview(emailView)
StackView.addArrangedSubview(anzeigeNameView)
StackView.addArrangedSubview(usernameView)
usw.
但是然后您将其他视图添加到view
:
然后您将这些视图限制为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)
现在您的文本字段将是它们各自视图的子视图,它们是堆栈视图的排列子视图。
完成此操作后,您可能需要调整约束。
【讨论】:
mmmm,这实际上修复了它,谢谢!我知道我以前有过这样的情况,但我改变了,因为有些东西没有按应有的方式工作。但是,现在一切正常。感谢您的帮助:)以上是关于ScrollView 滚动出约束的主要内容,如果未能解决你的问题,请参考以下文章
是否可以使用 ScrollView 和 HorizontalScrollView 实现对角滚动?
同一视图上的多个手势(从可滚动视图中拖出视图)无法正常工作?
iOS UIScrollView 无法滚动 没有弹簧效果解决方案