我正在使用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];
}
我已将换行模式更改为UILineBreakModeCharacterWrap
,UILineBreakModeClip
,UILineBreakModeHeadTruncation
,UILineBreakModeTailTruncation
和UILineBreakModeMiddleTruncation
。但问题仍然存在。我知道问题出在输入文本没有空格,但是如何解决这个问题。请帮我找一个解决方案。提前谢谢。
答案 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];
我认为这会对你有所帮助。