我有一个包含4个按钮的堆栈视图。每个按钮我也添加了subview。那4个按钮的子视图,我尝试编程为其添加约束。一些约束,例如 .Trailing .Leading .Top .Bottom 我无法通过错误约束和堆栈添加它查看问题。如何将该约束添加到stackview的子视图的任何解决方案。如果有任何样品,对我来说真的很好。提前谢谢
答案 0 :(得分:4)
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