2015-04-04 74 views
2

我正在製作一個應用程序而不使用故事板。該應用有很長的文字,所以我無法在一行上獲得足夠的空間。該應用程序適用於iPad和iPhone。 adjustSizeToFit = true不起作用,是否有一個用多行調整標籤大小的metode?多行自動縮水標籤Swift

+0

您能詳細解釋一下您的問題嗎?我不太清楚你想要什麼幫助。你有一個寬度,你也指定了行數。你到底在做什麼,你需要幫助? – MLyck 2015-04-04 06:29:25

+0

不清楚你在問什麼。 – Arbitur 2015-04-04 09:00:14

回答

3

UILabel沒有財產adjustSizeToFit。你確定你的意思不是adjustsFontSizeToFitWidth?如果你看文檔,說:

通常情況下,標籤文本是用您在font屬性中指定的字體繪製的。但是,如果此屬性設置爲true,並且text屬性中的文本超出了標籤的邊界矩形,接收器將開始縮小字體大小,直到字符串適合或達到最小字體大小。在iOS 6及更早版本中,只有當numberOfLines屬性設置爲1時,此屬性纔有效。

我不確定是你想要的。

如果你想要一個UILabel用線的任意數字,其中的文本包含在一定寬度內,繼續閱讀:

您做些什麼,將取決於您是否使用自動版式與否:

不自動版式

只需使用:

let size = label.sizeThatFits(CGSize(width: myWidth, height: CGFloat.max)) 
// CGFloat.max, because we don't want to limit the UILabel's height. 
label.frame.size = size 

AutoLayout

首先,您應該將numberOfLines設置爲零。其次,你需要告訴AutoLayout每行可以有多長,這個不是默認爲標籤的寬度。爲此,您需要一個UILabel子類:

class myLabel : UILabel { 
    override func layoutSubviews() { 
     // 1. Get the label to set its frame correctly: 
     super.layoutSubviews() 

     // 2. Now the frame is set we can get the correct width 
     // and set it to the preferredMaxLayoutWidth. 
     self.preferredMaxLayoutWidth = self.frame.width 
    } 
} 
+0

我正在編程按鈕。我如何將它連接到課堂上? – vladasha 2015-04-07 13:54:25

+0

你原來的問題中沒有提到任何按鈕。我會建議要麼創建一個新的問題,要麼有大量的資源在線。希望有所幫助。 – ABakerSmith 2015-04-07 15:46:56

+0

它沒有出現像SKLabel的等價物? – Crashalot 2015-05-17 05:45:01