【问题标题】:UILabel view disappear when the height greater than 8192UILabel 视图在高度大于 8192 时消失
【发布时间】:2012-12-17 00:39:39
【问题描述】:

将大字符串分配给 UILabel。并且,将此标签添加到滚动视图中。
当 UILabel 高度大于 8192pt(即 2^13)时,UILabel 消失。

这是 iOS 错误吗?

我应该使用其他实现来呈现这么多的字符串吗?
我应该在单元格中使用表格视图吗?

更新

将显示 UILabel 的代码:

UILabel *label = [[UILabel alloc] init];
label.backgroundColor = [UIColor clearColor];
label.text = rumor.displayText;
label.frame = CGRectMake(0, 0, self.view.frame.size.width, 8192);
label.lineBreakMode = UILineBreakModeWordWrap;
label.numberOfLines = 0;

UILabel 的代码确实消失了

UILabel *label = [[UILabel alloc] init];
label.backgroundColor = [UIColor clearColor];
label.text = rumor.displayText;
label.frame = CGRectMake(0, 0, self.view.frame.size.width, 8193);
label.lineBreakMode = UILineBreakModeWordWrap;
label.numberOfLines = 0;

【问题讨论】:

标签: ios uilabel


【解决方案1】:

首先 - 它不一定是错误。这只是未定义的行为。请注意,对于每个组件,当组件停止正常工作时,都会有一些大小上限。 8192 点似乎是一个下限,但仍然是 iPad 纵向模式屏幕的 8 倍左右。

你不应该让视图那么大。请注意,UIViews 通常会渲染到内存中并进行缓冲,以加快重绘速度。高度为 8192,缓冲区必须非常大。

将文本分成几个UILabels(例如按段落)肯定会有所改进。

https://stackoverflow.com/a/1494496/669586

【讨论】:

    【解决方案2】:

    我在使用 UITextViews 时遇到了同样的问题,并想出了一个相当有效的解决方案。

    如果您想看,请在此处查看我的答案!:

    https://stackoverflow.com/a/37147533/2155673

    它应该很容易适应 UILabel。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      • 2018-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-29
      相关资源
      最近更新 更多