Кажется, что UIStackView там не то, что вам действительно нужно, а скорее просто UIView
, который центрируется вертикально в родительском представлении и содержит UIImageView
и UILabel
, а затем устанавливает imageView.trailing
равным label.leading
, плюс label.sizeToFit()
.
Но если вы хотите придерживаться своего дизайна, то вы можете программно установить оси UIStackView. Например, установите представление стека в IB как:
Настройка UIStackView IB
и затем в коде в методе viewDidLoad()
:
if label.text == "" {
stackView.axis = .vertical
} else {
stackView.axis = .horizontal
}
также с label.sizeToFit()
.
Это должно сработать.