2012-06-30 109 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;