Центр UIStackView не центрирующий вид - PullRequest
0 голосов
/ 28 февраля 2020

У меня есть это

view.addSubview(myName)
        myName.topAnchor.constraint(equalTo: myImage.bottomAnchor).isActive = true
        myName.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
        myName.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true

        let stackView = UIStackView(arrangedSubviews: [myValue1,myValue2])
        view.addSubview(stackView)
        stackView.translatesAutoresizingMaskIntoConstraints = false
        stackView.alignment = .center
        stackView.topAnchor.constraint(equalTo: myName.bottomAnchor).isActive = true

enter image description here

Есть идеи, почему это выглядит так? Я хочу, чтобы он был отцентрирован по вертикали, как пример текста, я пытался добавить

stackView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
stackView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true

, но тогда это выглядит так

enter image description here

Есть идеи, что мне не хватает?

1 Ответ

1 голос
/ 28 февраля 2020

Попробуйте

stackView.centerXAnchor.constraint(equalTo: myName.centerXAnchor).isActive = true

Это должно центрировать само представление стека относительно метки myName

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

Обновите

, если вам нужно пространство между метками, добавьте дополнительный UIView() между ними в стек:

let spacer = UIView()
spacer.widthAnchor.constraint(equalToConstant: 40.0).isActive = true
 let stackView = UIStackView(arrangedSubviews: [myValue1,spacer, myValue2])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...