如何在堆栈视图中添加视图约束

12

我有一个包含4个按钮的堆栈视图。每个按钮我也添加了子视图。那4个按钮的子视图,我尝试编程添加约束到其中。一些约束,如 .Trailing .Leading .Top .Bottom 我无法通过错误的约束和堆叠视图问题添加到它。如何将这些约束添加到堆栈视图的子视图中?如果有任何示例,对我来说真的很好。提前感谢。


了解更多信息:https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/LayoutUsingStackViews.html - Sour LeangChhean
1个回答

9
UIStackView的优势在于减少您对约束的使用,只需提供一些设置信息,如轴、分布、对齐和间距,堆栈视图将自动布局您的子视图项目。因为堆栈视图的大小基于其子视图的intrinsicContentSize,所以您可以通过额外的约束来覆盖设置子视图的大小。
向StackView的子视图添加约束与其他UIView中的项目相同。但这不是StackView的方式,您应该注意添加冲突约束。
希望这个代码演示能够帮助您:
let stackView = UIStackView()
let demoView = UIView()
demoView.backgroundColor = UIColor.red

stackView.addArrangedSubview(demoView)
demoView.translatesAutoresizingMaskIntoConstraints = false

// add your constraints as usual
demoView.widthAnchor.constraint(equalToConstant: 300).isActive = true
demoView.heightAnchor.constraint(equalToConstant: 200).isActive = true
demoView.trailingAnchor.constraint(equalTo: stackView.trailingAnchor).isActive = true
demoView.topAnchor.constraint(equalTo: stackView.topAnchor).isActive = true

view.addSubview(stackView)
stackView.translatesAutoresizingMaskIntoConstraints = false
stackView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
stackView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接