如何以编程方式更改stackView内部单个UIView的高度?

时间:2020-06-26 19:21:39

标签: ios swift uiview stackview

我在弄清楚如何使两个视图具有相同的高度而第三个视图具有比其他两个视图更大的高度时遇到麻烦。现在,每当我尝试更改其中一个视图的高度时,对其他所有视图都执行相同的操作。这就是我所拥有的...

enter image description here

任何帮助将不胜感激!

            var line1 = UIView()
            var line2 = UIView()
            var lineText = UIView()
            var lineStackView = UIStackView()
    
            line1.backgroundColor = .red
            line2.backgroundColor = .blue
            lineText.backgroundColor = .orange

            line1.translatesAutoresizingMaskIntoConstraints = false
            line2.translatesAutoresizingMaskIntoConstraints = false
            lineText.translatesAutoresizingMaskIntoConstraints = false
            
            
            line1.heightAnchor.constraint(equalToConstant: 10).isActive = true
            line2.heightAnchor.constraint(equalToConstant: 10).isActive = true
            lineText.heightAnchor.constraint(equalToConstant: 20).isActive = true
            
            lineStackView.distribution = .fillEqually
            lineStackView.axis  = .horizontal
            lineStackView.spacing = 20
            [line1, line2, lineText].forEach{lineStackView.addArrangedSubview($0)}
            view.addSubview(lineStackView)
    
           lineStackView.anchor(top: view.safeAreaLayoutGuide.topAnchor, leading: view.safeAreaLayoutGuide.leadingAnchor, bottom: nil, trailing: view.safeAreaLayoutGuide.trailingAnchor, padding: .init(top: 0, left: 40.adjusted, bottom: 0, right: 40.adjusted))

1 个答案:

答案 0 :(得分:0)

更改堆栈视图的.alignment

lineStackView.alignment = .top
// or
lineStackView.alignment = .center
// or
lineStackView.alignment = .bottom