ios – UILabel视图在高度大于8192时消失

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

这是iOS的错误吗?

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

UPDATE

显示UILabel的代码

UILabel *label = [[UILabel alloc] init];
label.backgroundColor = [UIColor clearColor];
label.text = rumor.displayText;
label.frame = CGRectMake(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,8193);
label.lineBreakMode = UILineBreakModeWordWrap;
label.numberOfLines = 0;

解决方法

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

你不应该发表那么大的观点.请注意,UIViews经常被渲染到内存中并进行缓冲,以便更快地重绘.高度为8192,缓冲区必须非常大.

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

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

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...