2015-05-05 440 views
0

長時間閱讀器,第一次張貼海報。我已經搜索了一個解決方案,但我還沒有找到一個有效的答案。垂直對齊UILabel中的文字(xcode)

好的問題:我有一個UILabel獲取動態分配給它的文本。如果我調整標籤的大小以覆蓋整個視圖控制器,則文本會卡在中間。我發現了一堆解決方案,說要添加以下代碼:

detailsLabel.numberOfLines = 0; 
detailsLabel.sizeToFit() 

但是,這不起任何作用。

有人可以看看我的代碼並提供建議嗎?

import UIKit 

class DetailsViewController: UIViewController { 

@IBOutlet weak var detailsLabel: UILabel! 
@IBOutlet weak var lbldetails: UILabel! 


var selectedBeach : Beach? 


override func viewDidLoad() { 
    super.viewDidLoad() 

    // Do any additional setup after loading the view. 
    detailsLabel.text = selectedBeach?.greaterDetails 
    lbldetails.text = (selectedBeach?.beachName ?? "") + " Details" 

    detailsLabel.numberOfLines = 0; 
    [detailsLabel .sizeToFit()] 

} 

@IBAction func dismiss(sender: AnyObject) { 
    self.dismissViewControllerAnimated(true, completion: nil) 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 


/* 
// MARK: - Navigation 

// In a storyboard-based application, you will often want to do a little preparation before navigation 
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    // Get the new view controller using segue.destinationViewController. 
    // Pass the selected object to the new view controller. 
} 
*/ 
+1

,所以我想你沒有使用自動佈局? –

+0

嗨安德烈斯洛塔,感謝您的評論。自動佈局框在視圖控制器上被選中。 – Flexo

+0

好的,你在故事板中設置標籤?你有沒有設置任何限制? –

回答

2

好的。從標籤到視圖,釋放從標籤LEFT

  1. 拖動到視圖,釋放和選擇前導空格集裝箱保證金
  2. 向右拖動,選擇尾隨空間集裝箱保證金:請執行下列操作從標籤到視圖,釋放
  3. 向上拖動,選擇頂層空間頂部佈局指南

之後,去標籤的尺寸檢查員,並確保約束都有一個常數標準

最後但並非最不重要去標籤的屬性檢查器中,並確保該屬性設置爲0。

隨時問,如果你有任何問題:)

+0

優秀!問題解決了!非常感謝Andre Slotta! :) – Flexo

+0

非常歡迎你:) –

0

斯威夫特正確的代碼

detailsLabel.sizeToFit() 

沒有[]

而爲的Objective-C是

[detailsLabel sizeToFit]; 
+0

嗨Stefan Salatic,感謝您的快速響應,我已更新代碼與您的建議,但我得到完全相同的結果。 – Flexo

+0

嗨,如果你需要更多的信息,你可以看看這個完整的答案http://stackoverflow.com/questions/1054558/vertically-align-text-within-a-uilabel?rq=1 –

0

你可以做以下的事情,使支持多行的UILabel

lbldetails.numberOfLines = 0 
lbldetails.preferredMaxLayoutWidth = lbldetails.frame.size.width 

在這裏,我認爲你的UILable支持動態的高度,按照其文本只是問題就不會顯示多行。

請給UILabel以下限制。 enter image description here

希望這對你有所幫助。

+0

@flexo,讓我知道如果你仍然有問題。 –

+0

嗨,沒有!感謝您的評論。我已經將上面的解決方案添加到代碼中,但我仍然得到相同的結果。例如小廣場......裏面。 – Flexo

+0

@Flexo,你的標籤有不同的高度嗎?根據不同的文本..只是我想通過設置約束得到天氣問題? –