如何以编程方式更改堆栈视图中单个 UIView 的高度?
How can I change the height of a single UIView inside of a stackView progromatically?
我无法弄清楚如何让两个视图具有相同的高度,而第三个视图的高度比其他两个高。现在,每当我尝试更改其中一个视图的高度时,它会对所有其他视图执行相同的操作。这是我的...
如有任何帮助,我们将不胜感激!
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([=10=])}
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))
更改堆栈视图的 .alignment
:
lineStackView.alignment = .top
// or
lineStackView.alignment = .center
// or
lineStackView.alignment = .bottom
我无法弄清楚如何让两个视图具有相同的高度,而第三个视图的高度比其他两个高。现在,每当我尝试更改其中一个视图的高度时,它会对所有其他视图执行相同的操作。这是我的...
如有任何帮助,我们将不胜感激!
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([=10=])}
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))
更改堆栈视图的 .alignment
:
lineStackView.alignment = .top
// or
lineStackView.alignment = .center
// or
lineStackView.alignment = .bottom