将大字符串分配给UILabel。并且,将此标签添加到滚动 View 中。
当UILabel高度大于8192pt(即2 ^ 13)时,UILabel消失。
这是iOS错误吗?
我是否应该使用其他实现来呈现如此数量的字符串?
我应该将表格 View 与单元格一起使用吗?
更新
将显示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;
最佳答案
首先-它不一定是bug。这只是未定义的行为。请注意,对于每个组件,当组件停止正常工作时,都会有一些大小上限。 8192点似乎是一个下限,但仍然是纵向模式下iPad屏幕的8倍左右。
您不应将 View 那么大。请注意,UIView
通常会渲染到内存中并进行缓冲,以使重绘更快。高度为8192,缓冲区必须非常大。
将文本拆分为几个UILabel
(例如按段落)绝对是一种改进。
参见https://stackoverflow.com/a/1494496/669586
关于ios - 当高度大于8192时,UILabel View 消失,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14125563/