У меня есть горизонтальный стек, расположенный в раскадровке. Что касается представлений для представления стека, это делается программно, поскольку количество представлений внутри представления стека является динамическим. Я установил представление стека как «Заполнить одинаково».

Для представлений внутри будет UIlabel. Проблема в том, что я не могу центрировать UILabel внутри UIView, который будет добавлен в представление стека.

Вот мой код:

    let main1 = UIView()
    main1.backgroundColor = UIColor.red
    stackView.addArrangedSubview(main1)

    let text1 = UILabel()
    text1.text = "Lvl 1"
    text1.textColor = .blue
    text1.textAlignment = .center
    text1.backgroundColor = .yellow
    text1.sizeToFit()
    main1.addSubview(text1)


    let label2 = UIView()
    label2.backgroundColor = UIColor.blue
    stackView.addArrangedSubview(label2)

В этом примере я добавляю только 2 представления с меткой, добавленной к первому представлению. Итак, как я могу центрировать UILabel, который будет внутри каждого UIView?

0
da32 21 Ноя 2018 в 12:27

1 ответ

Лучший ответ

Для этого можно использовать автоматические раскладки. Проверьте код ниже:

...

main1.addSubview(text1)

text1.translatesAutoresizingMaskIntoConstraints = false
text1.centerXAnchor.constraint(equalTo: main1.centerXAnchor).isActive = true
text1.centerYAnchor.constraint(equalTo: main1.centerYAnchor).isActive = true
2
gulyashki 21 Ноя 2018 в 09:56