2013-01-02 29 views
8

將大字符串分配給UILabel。並且,將該標籤添加到滾動視圖中。
當UILabel高度大於8192pt(即2^13)時,UILabel消失。當高度大於8192時,UILabel視圖消失

這是一個iOS的錯誤?

我應該使用其他實現來渲染這樣的字符串數量嗎?
我應該在單元格中使用表格視圖嗎?

UPDATE

,將顯示的UILabel代碼:

UILabel *label = [[UILabel alloc] init]; 
label.backgroundColor = [UIColor clearColor]; 
label.text = rumor.displayText; 
label.frame = CGRectMake(0, 0, self.view.frame.size.width, 8192); 
label.lineBreakMode = UILineBreakModeWordWrap; 
label.numberOfLines = 0; 

這確實的UILabel消失

UILabel *label = [[UILabel alloc] init]; 
label.backgroundColor = [UIColor clearColor]; 
label.text = rumor.displayText; 
label.frame = CGRectMake(0, 0, self.view.frame.size.width, 8193); 
label.lineBreakMode = UILineBreakModeWordWrap; 
label.numberOfLines = 0; 
+0

首先,你需要證明你的一些代碼和截圖 –

+2

的我讀了一些日子,一個UIView不應超過2048像素大。 – dasdom

+1

權利.. http://blog.tofodo.com/2009/03/iphone-sdk-doesnt-like-long-texts.html –

回答

7

首先的代碼 - 它不必是一個錯誤。這只是未定義的行爲。請注意,對於每個組件,當組件停止正常工作時會有一些大小上限。 8192點似乎是一個下限,但仍然是縱向模式下iPad屏幕的8倍。

你不應該認爲那麼大。請注意,UIView經常被渲染到內存中並進行緩衝,以便更快地進行重繪。 8192的高度,緩衝區必須非常大。

拆分文本分成幾個UILabel S(例如,通過一段)肯定是一個進步。

https://stackoverflow.com/a/1494496/669586

0

我遇到了同樣的問題與UITextViews,並與一個相當有效的解決方案上來。

如果你想看到它,在這裏看看我的答案!:

https://stackoverflow.com/a/37147533/2155673

它應該是很容易爲UILabels適應。

相關問題