UIStackView - 三个排列的具有相对宽度的子视图
UIStackView - Three arranged subviews with relative widths
我有一个外部 UIStackView,将其命名为 outerStackView
,具有以下属性:
outerStackView.axis = .Horizontal
outerStackView.distribution = .Fill
outerStackView.spacing = 10
outerStackView
有三个排列的子视图(将它们视为 3 列),它们也恰好是 UIStackViews。
我想将三个排列的子视图(列)的宽度设置为 outerStackView 宽度的相对倍数。
所以我尝试这样做:
leftColumnStackView = UIStackView()
middleColumnStackView = UIStackView()
rightColumnStackView = UIStackView()
outerStackView.addArrangedSubview(leftColumnStackView)
outerStackView.addArrangedSubview(middleColumnStackView)
outerStackView.addArrangedSubview(rightColumnStackView)
leftColumnStackView.widthAnchor.constraintEqualToAnchor(outerStackView.widthAnchor, multiplier: 0.4, constant: 0).active = true
middleColumnStackView.widthAnchor.constraintEqualToAnchor(outerStackView.widthAnchor, multiplier: 0.4, constant: 0).active = true
rightColumnStackView.widthAnchor.constraintEqualToAnchor(outerStackView.widthAnchor, multiplier: 0.2, constant: 0).active = true
这会引发一堆自动布局错误。
如何使这三列 UIStackView 相对于它们的父视图具有相对宽度?
我通过给左列和中间列相对宽度(考虑到它们之间的间距)解决了这个问题,右列简单地填充了 space.
leftColumnStackView.widthAnchor.constraintEqualToAnchor(outerStackView.widthAnchor, multiplier: 0.38, constant: -20).active = true
middleColumnStackView.widthAnchor.constraintEqualToAnchor(outerStackView.widthAnchor, multiplier: 0.38, constant: -20).active = true
我有一个外部 UIStackView,将其命名为 outerStackView
,具有以下属性:
outerStackView.axis = .Horizontal
outerStackView.distribution = .Fill
outerStackView.spacing = 10
outerStackView
有三个排列的子视图(将它们视为 3 列),它们也恰好是 UIStackViews。
我想将三个排列的子视图(列)的宽度设置为 outerStackView 宽度的相对倍数。
所以我尝试这样做:
leftColumnStackView = UIStackView()
middleColumnStackView = UIStackView()
rightColumnStackView = UIStackView()
outerStackView.addArrangedSubview(leftColumnStackView)
outerStackView.addArrangedSubview(middleColumnStackView)
outerStackView.addArrangedSubview(rightColumnStackView)
leftColumnStackView.widthAnchor.constraintEqualToAnchor(outerStackView.widthAnchor, multiplier: 0.4, constant: 0).active = true
middleColumnStackView.widthAnchor.constraintEqualToAnchor(outerStackView.widthAnchor, multiplier: 0.4, constant: 0).active = true
rightColumnStackView.widthAnchor.constraintEqualToAnchor(outerStackView.widthAnchor, multiplier: 0.2, constant: 0).active = true
这会引发一堆自动布局错误。
如何使这三列 UIStackView 相对于它们的父视图具有相对宽度?
我通过给左列和中间列相对宽度(考虑到它们之间的间距)解决了这个问题,右列简单地填充了 space.
leftColumnStackView.widthAnchor.constraintEqualToAnchor(outerStackView.widthAnchor, multiplier: 0.38, constant: -20).active = true
middleColumnStackView.widthAnchor.constraintEqualToAnchor(outerStackView.widthAnchor, multiplier: 0.38, constant: -20).active = true