2013-10-03 94 views
0

我有一個UILabels問題,其中包含分散在多行上的文本。它嵌套在一個全屏UIViewautoresizing面具,以及:帶多行和自動調整大小掩碼的UILabel(UIViewAutoresizingMask)

view.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth; 

我想補充autoresizingMask標籤上

label.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth; 

但問題是,這並不爲我的工作d喜歡它的工作。如果我這樣做,在旋轉屏幕(改變視圖的大小)後,標籤的高度變小,部分文本被剪掉。 (它不顯示整個文本)。如果我不添加UIViewAutoresizingFlexibleHeight,那麼旋轉後的標籤在文本上方和下方存在大的間隙(我不希望這樣)。

我也嘗試添加UIViewAutoresizingFlexibleBottomMargin,但這並沒有幫助,因爲仍然沒有顯示整個文本。

編輯: 我真的不認爲會自動調整大小面具要解決這個問題 - >自動尺寸口罩根據上海華尺寸的變化調整視圖。這就是爲什麼身高不適合文字。我能想到的唯一解決方案是在超級視圖重新調整大小後重置UILabel框架。如果我錯了,我很樂意得到糾正。

回答

0
self.label.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin; 
    self.label.numberOfLines = 10; 
+0

感謝您的意見。不幸的是,這段代碼並不適合我。此外,我不知道文本會有多少行 - >如果設備處於縱向方向,則會傳播更多行,因爲行會更窄。如果設備處於橫向模式,則線條較長,因此需要較少的線條。 – Lukas1

0

你不能在標籤上使用fitToSize(或任何版本)方法嗎?只要記住的行數設定爲0

self.label.numberOfLines = 0; 
[self.label fitToSize]; 

編輯:這是[self.label sizeToFit];

+0

不,因爲我在構建UILabel時沒有問題,當它在原始框架中顯示時,沒關係。旋轉屏幕後出現問題。但我幾乎可以肯定,自動調整口罩並不能解決這類問題,而且實際上使問題變得更糟。可能唯一的解決方案是重寫一些UILabel方法。 – Lukas1