выравнивание вида сверху вниз другого вида внутри вертикального стека - PullRequest
2 голосов
/ 01 июля 2019

У меня есть метка и изображение, прикрепленные в вертикальном виде.Я хочу, чтобы они были в центре стека, но не больше.Я также хочу, чтобы верхняя часть метки была выровнена по нижней части изображения.

Я пробовал эти ограничения:

screenshot

Но метка застряла нанижняя часть представления стека.

Я также попытался:

NSLayoutConstraint(item: stackView,
    attribute: .top,
    relatedBy: .greaterThanOrEqual,
    toItem: contentView,
    attribute: .top,
    multiplier: 1,
    constant: 0).isActive = true

NSLayoutConstraint(item: stackView,
    attribute: .bottom,
    relatedBy: .greaterThanOrEqual,
    toItem: contentView,
    attribute: .bottom,
    multiplier: 1,
    constant: 0).isActive = true

NSLayoutConstraint(item: stackView,
    attribute: .left,
    relatedBy: .greaterThanOrEqual,
    toItem: contentView,
    attribute: .left,
    multiplier: 1,
    constant: 0).isActive = true

NSLayoutConstraint(item: stackView,
    attribute: .right,
    relatedBy: .greaterThanOrEqual,
    toItem: contentView,
    attribute: .right,
    multiplier: 1,
    constant: 0).isActive = true

NSLayoutConstraint(item: stackView,
    attribute: .centerX,
    relatedBy: .equal,
    toItem: contentView,
    attribute: .centerX,
    multiplier: 1,
    constant: 0).isActive = true

NSLayoutConstraint(item: stackView,
    attribute: .centerY,
    relatedBy: .equal,
    toItem: contentView,
    attribute: .centerY,
    multiplier: 1,
    constant: 0).isActive = true

NSLayoutConstraint(item: imageView,
    attribute: .height,
    relatedBy: .equal,
    toItem: stackView,
    attribute: .height,
    multiplier: 0.5,
    constant: 0).isActive = true

Но теперь вершина изображения прикреплена к вершине вершины представления содержимого, а нижняя часть метки приклеена книжняя часть просмотра содержимого нижняя часть

1 Ответ

0 голосов
/ 01 июля 2019

A UIStackView организует свои подпредставления .

В вашем случае у вас есть UIImageView и UILabel как упорядоченные подпредставления вертикального стека. Таким образом, метка будет всегда ниже представления изображения.

Я предполагаю, что у вас есть дополнительные представления для добавления в представление стека - если это так,

  • Чтобы получить метку, выровненную по верху с видом изображения, вставьте метку и вид изображения в новый UIView, установите ограничения, чтобы прикрепить метку к вершине, а затем добавьте UIView к ваш вид стека.

Если нет,

  • Возможно, вы вообще не хотите использовать представление стека.
...