I'm having trouble figuring out how to have two views have equal heights and the third view have a bigger height than the other two. Right now, whenever I try to change the height of one of the views, it does the same for all other views. Here is what I have...
Any help would be greatly appreciated!
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))
Change the .alignment
of your stack view:
lineStackView.alignment = .top
// or
lineStackView.alignment = .center
// or
lineStackView.alignment = .bottom