UILabel不显示用户输入文本

时间:2012-06-30 11:18:24

标签: ios uilabel line-breaks

我正在使用UILabel来显示用户输入。如果用户输入类似于“xxxxx xxxx xxxx xxxx xxx xxxx xxx xxx”,则完美显示在UILabel上。但当输入类似“xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”导致问题。该文本不会显示在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。但问题仍然存在。我知道问题出在输入文本没有空格,但是如何解决这个问题。请帮我找一个解决方案。提前谢谢。

3 个答案:

答案 0 :(得分:1)

您需要先找到文本的高度,然后将高度指定给标签。

并设置numberOfLines = 0;

你可以从这个函数找到高度

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

答案 1 :(得分:0)

你的文字大于标签的大小,你可以截断它(头部,中部,尾部)或者你可以缩小字体

答案 2 :(得分:0)

替换[self.view addSubview:label];而不是[self.view addSubView:label];

我认为这会对你有所帮助。