2012-06-30 149 views
0

我正在使用UILabel顯示用戶輸入。如果用戶輸入類似「xxxxx xxxx xxxx xxxx xxx xxxx xxx xxx」它完全顯示在UILabel上。但是當輸入是像「xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx」導致此問題。該文本不會顯示在UILabel上。UILabel不顯示用戶輸入文本

我對UILabel功能使用以下代碼。

-(void)displayText:(NSString *)text 
{ 
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(75,50,30,50)]; 
label.text = text; 
label.numberOfLines = 10; 
label.lineBreakMode = UILineBreakModeWordWrap; 
[self.view addSubview:label]; 
[label release]; 
} 

我已經改變了換行模式UILineBreakModeCharacterWrapUILineBreakModeClipUILineBreakModeHeadTruncationUILineBreakModeTailTruncationUILineBreakModeMiddleTruncation。但問題仍然存在。我知道問題是與輸入文本沒有空格,但如何解決這個問題。請幫我找到一個解決方案。提前致謝。

+0

當你說「這個文本將無法顯示」的高度,你的意思,它的部分顯示/什麼都沒有? – Stavash

+0

@stavash:什麼都沒有 –

回答

0

您的文字是比標籤的尺寸變大,你可以截斷它(頭,中,尾),或者你可以讓字體更小

0

更換[self.view addSubview:label];代替[self.view addSubView:label];

我認爲這會對你有所幫助。

+0

有什麼區別? – Stavash

+0

這裏v是小寫字母不是大寫。 –

+0

明白了。但是,如果這是問題,我認爲會涉及到崩潰。可能只是一個類型o。 – Stavash

1

您需要首先找到文本的高度,然後您需要爲該標籤指定高度。

並設置numberOfLines = 0;

,你可以找到這個功能

CGFloat height = [text sizeWithFont:[UIFont systemFontOfSize:14] constrainedToSize:CGSizeMake(yourlabel.frame.size.width - 10, 9999) lineBreakMode:UILineBreakModeWordWrap].height;