当高度大于8192时,UILabel视图消失

将大string分配给UILabel。 而且,将这个标签添加到滚动视图。
当UILabel高度大于8192pt(即2 ^ 13)时,UILabel消失。

这是一个iOS的错误?

我应该用其他的实现来渲染这样的string数量吗?
我应该使用单元格的表格视图吗?

UPDATE

将显示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; 

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

你不应该这么看。 请注意, UIView往往渲染到内存和缓冲,以更快地重绘。 8192的高度,缓冲区必须非常大。

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

请参阅https://stackoverflow.com/a/1494496/669586

我遇到了与UITextViews相同的问题,并提出了一个相当有效的解决scheme。

如果你想看看,请查看我的答案!

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

适应UILabels应该相当容易。