Кнопка next рядом с именем пользователя кажется вертикально центрированной, тогда как я хочу выровнять базовые линии обоих названий.
Я хочу выровнять это программно.
предположим, что у вас нет фиксированной ширины и высоты как вашей метки, так и кнопки.
Тогда ваш код будет выглядеть следующим образом. Просто упомянем, что я использую LayoutAnchor, так как это легко.
func autolayoutTitle() {
let label = UILabel()
label.backgroundColor = UIColor.red
label.textColor = UIColor.white
label.text = "Nafeez Zawahir"
label.textAlignment = .right
view.addSubview(label)
label.translatesAutoresizingMaskIntoConstraints = false
//label.widthAnchor.constraint(equalToConstant: 150).isActive = true
// label.heightAnchor.constraint(equalToConstant: 40).isActive = true
label.leftAnchor.constraint(equalTo: view.leftAnchor, constant: 40).isActive = true
label.topAnchor.constraint(equalTo: view.topAnchor, constant: 100).isActive = true
let button = UIButton()
//button.titleLabel?.text = "Follow"
button.setTitle("Follow", for: .normal)
button.setTitleColor(UIColor.white, for: .normal)
button.backgroundColor = UIColor.darkGray
view.addSubview(button)
button.translatesAutoresizingMaskIntoConstraints = false
// button.widthAnchor.constraint(equalToConstant: 100).isActive = true
// button.heightAnchor.constraint(equalToConstant: 50).isActive = true
button.leftAnchor.constraint(equalTo: label.rightAnchor, constant: 2).isActive = true
button.lastBaselineAnchor.constraint(equalTo: label.lastBaselineAnchor).isActive = true
// button.lastBaselineAnchor.constraint(equalTo: label.lastBaselineAnchor, constant: -10).isActive = true
}
И выход:
Но если у вас есть фиксированная ширина и высота вашего ярлыка, а также ваша кнопка, то вам нужно настроить привязку базовой линии к базовой линии с привязкой к базовой метке, которая зависит от высоты надписи.
Скажем, у вас есть высота ярлыка 40, как это.
label.heightAnchor.constraint(equalToConstant: 40).isActive = true
Тогда привязка базовой линии к вашей кнопке должна быть такой.
button.lastBaselineAnchor.constraint(equalTo: label.lastBaselineAnchor, constant: -10).isActive = true
Ниже приведен код:
func autolayoutTitle() {
let label = UILabel()
label.backgroundColor = UIColor.red
label.textColor = UIColor.white
label.text = "Nafeez Zawahir"
label.textAlignment = .right
view.addSubview(label)
label.translatesAutoresizingMaskIntoConstraints = false
label.widthAnchor.constraint(equalToConstant: 150).isActive = true
label.heightAnchor.constraint(equalToConstant: 40).isActive = true
label.leftAnchor.constraint(equalTo: view.leftAnchor, constant: 40).isActive = true
label.topAnchor.constraint(equalTo: view.topAnchor, constant: 100).isActive = true
let button = UIButton()
//button.titleLabel?.text = "Follow"
button.setTitle("Follow", for: .normal)
button.setTitleColor(UIColor.white, for: .normal)
button.backgroundColor = UIColor.darkGray
view.addSubview(button)
button.translatesAutoresizingMaskIntoConstraints = false
button.widthAnchor.constraint(equalToConstant: 100).isActive = true
button.heightAnchor.constraint(equalToConstant: 50).isActive = true
button.leftAnchor.constraint(equalTo: label.rightAnchor, constant: 2).isActive = true
// button.lastBaselineAnchor.constraint(equalTo: label.lastBaselineAnchor).isActive = true
button.lastBaselineAnchor.constraint(equalTo: label.lastBaselineAnchor, constant: -10).isActive = true
}
И это результат: