2017-06-14 34 views
-2

用戶名旁邊的按鈕似乎是垂直居中,而我想要對齊兩個標題的基線。如何垂直對齊不同標題大小的兩個不同按鈕的標題?

我正在尋找以編程方式對齊。

Reveal inspection of the two button titles

+0

你能更清楚了嗎?您是否嘗試對齊按鈕上的文字,或者您是否嘗試對齊按鈕本身?你是否試圖在底部對齊它們?什麼是Asdfasdf?這也將是很好,如果你可以張貼一些代碼:) – victor

+0

謝謝。我正在嘗試對齊按鈕上的文本(標題)。它看起來像Follow按鈕的標題是垂直居中,而不是與底部對齊。 – ben

+0

@ben:只是看看我的答案。 –

回答

2

假設你沒有固定的寬度和高度的標籤和按鈕。

然後你的代碼看起來像這樣。只要提及我使用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 


} 

,輸出是:

enter image description here

但是,如果你有固定的寬度高度你的標籤,以及您的按鈕太多,那麼你必須調整你的按鈕的基線錨定標籤的基線錨點取決於標籤的高度。

假設標籤的高度爲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 


    } 

這是輸出:

enter image description here

+0

謝謝@elk_cloner! – ben

+0

我希望你接受我的回答。 –

+0

我如何接受你的答案? – ben

相關問題