Как условно центрировать изображение в StackView - PullRequest
0 голосов
/ 17 марта 2019

У меня есть StackView, содержащий UIImageView и UILabel. Иногда UILabel содержит цитату, а иногда нет. Когда это происходит, я хочу, чтобы UIImageView составлял 40% ширины устройства - у меня эта часть работает. Когда это не так, я хочу, чтобы UIImageView по-прежнему был такой же ширины, просто по центру по горизонтали. Какой самый простой способ добиться этого? StackView

StackView Settings

1 Ответ

1 голос
/ 17 марта 2019

Кажется, что 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().

Это должно сработать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...