是否可以在两个UILabel之间添加约束?

时间:2019-07-02 20:11:37

标签: swift label constraints

是的,基本上我想在一个UILabel(label1)的底部边框和另一个UILabel(label2)的顶部边框之间创建约束。我目前将标签1的顶部连接到安全区,并将恒定高度设置为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 个答案:

答案 0 :(得分:1)

您需要

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

答案 1 :(得分:0)

只需使用垂直stackview即可。

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)
])