Что-то в ваших ограничениях просмотра стека вызывает проблему.
Вот действительный макет:
![enter image description here](https://i.stack.imgur.com/U4vY1.png)
со стекомПросмотр свойств:
![enter image description here](https://i.stack.imgur.com/Imv7D.png)
Результат до добавления третьей кнопки с помощью кода:
![enter image description here](https://i.stack.imgur.com/rcbv3.png)
И результат после добавления третьей кнопки (ограничение высоты 60) с помощью кода:
![enter image description here](https://i.stack.imgur.com/745tX.png)
Нетпредупреждения или ошибки автоматической разметки.
Код (связанный с кнопкой 1) добавляет / удаляет Button 3
как упорядоченное подпредставление представления стека:
class TestViewController: UIViewController {
@IBOutlet var theStackView: UIStackView!
var thirdButton: UIButton = {
let b = UIButton()
b.translatesAutoresizingMaskIntoConstraints = false
b.setTitle("Button 3", for: .normal)
b.backgroundColor = .red
return b
}()
@IBAction func doAddThird(_ sender: Any) {
if theStackView.arrangedSubviews.count == 2 {
theStackView.addArrangedSubview(thirdButton)
} else {
if let v = theStackView.arrangedSubviews.last {
v.removeFromSuperview()
}
}
}
override func viewDidLoad() {
super.viewDidLoad()
// finish initializing the third button
if let v = theStackView.arrangedSubviews.first as? UIButton {
thirdButton.titleLabel?.font = v.titleLabel?.font
}
NSLayoutConstraint.activate([
thirdButton.heightAnchor.constraint(equalToConstant: 60),
])
}
}