Можно ли добавить ограничение между двумя UILabels? - PullRequest
0 голосов
/ 02 июля 2019

Да, я хочу создать ограничение между нижней границей одной UILabel (label1) и верхней границей другой UILabel (label2). В настоящее время у меня есть верхняя часть моего ярлыка 1, подключенная к safearea, и постоянная высота установлена ​​до 100.

    let label1 = UILabel.init()
    label1.text = "123"
    view.addSubview(label1)
    label1.translatesAutoresizingMaskIntoConstraints = false
    label1.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor).isActive = true
    label1.heightAnchor.constraint(equalToConstant: 100).isActive = true


    let label2 = UILabel.init()
    label2.text = "456"
    view.addSubview(label2)
    label2.translatesAutoresizingMaskIntoConstraints = false
    label2.topAnchor.constraint(???)

Ответы [ 2 ]

1 голос
/ 02 июля 2019

Вам нужно

let label1 = UILabel()
label1.text = "123"
view.addSubview(label1)
label1.translatesAutoresizingMaskIntoConstraints = false

let label2 = UILabel()
label2.text = "456"
view.addSubview(label2)
label2.translatesAutoresizingMaskIntoConstraints = false 

NSLayoutConstraint.activate([ 
   label1.topAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.topAnchor,constant:20.0),
   label1.centerXAnchor.constraint(equalTo:self.view.centerXAnchor),
   label2.topAnchor.constraint(equalTo: self.label1.bottomAnchor,constant:20.0),
   label2.centerXAnchor.constraint(equalTo:self.view.centerXAnchor)
])   

Вы также можете использовать вертикальный UIStackView

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

Просто используйте вертикальный вид стека.

let label1 = UILabel()
label1.text = "123"

let label2 = UILabel()
label2.text = "456"


let stackView = UIStackView(arrangedSubviews: [label1, label2])
stackView.axis = .vertical
stackView.distribution = .equalSpacing
stackView.alignment = .center
stackView.spacing = 10
stackView.translatesAutoresizingMaskIntoConstraints = false 

 NSLayoutConstraint.activate([ 
       stackView.topAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.topAnchor,constant:20.0),
      stackView.centerXAnchor.constraint(equalTo:self.view.centerXAnchor)
])  
...