【问题标题】:UILabel not displaying user input textUILabel 不显示用户输入文本
【发布时间】:2012-06-30 11:18:24
【问题描述】:

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

【问题讨论】:

  • 当您说“此文本不会显示”时,您的意思是它部分显示/根本没有显示吗?
  • @stavash:什么都没有

标签: ios uilabel line-breaks


【解决方案1】:

您需要先找到文本的高度,然后您需要将该高度分配给您的标签。

并设置 numberOfLines = 0;

你可以通过这个函数找到高度

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

【讨论】:

    【解决方案2】:

    您的文本大于标签的大小,您可以将其截断(头部、中间、尾部)或缩小字体

    【讨论】:

      【解决方案3】:

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

      我认为这对你会有帮助。

      【讨论】:

      • 这里的 v 是小写字母而不是大写字母。
      • 知道了。但如果这是问题所在,我认为会涉及崩溃。可能只是一个类型-o。
      • @PrasadG:抱歉,这是一个类型错误。
      • 我得到了答案。那么检查它的“文本”是否为空?
      • @PrasadG:文本在那里。我检查了使用 NSLog
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-04
      • 2015-09-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多