最近改一份代码,之前的同事,使用UILabel来进行一份协议的展示,
我当时修改了一下的协议的文件,结果,这份协议怎么都不显示出来!!!
我当时就会懵逼了!!!!
明明设置字体颜色,背景色,和frame大小、透明度,甚至使用Xcode工具去看的时候都可以轻松看到uilabel这层界面,可以他就是透明地很彻底。为什么会出现这种情况呢??
当时通过计算,得出label 的高度是8300多。
幸好,同事秉着实验的精神加了一个helloWorld的Label上面,一切都正常显示。
然后把协议内容放进去,显示
修改高度1000,显示
修改高度4000,正常显示
修改高度8000,lable透明什么都不显示。
修改6000,透明什么都不显示
修改5000,正常显示
测试的是iOS模拟器 对应xcode版本 9.41
我也是服了,查了一下,网上有一篇文章有所介绍:
iOS UILabel高度的极限值
文章里对这个原因解释如下:
说label高度的极限值是8192(2^13),这并不是苹果的一个bug,只是一个未定义的行为。因为为了更快的重绘view,通常会把view渲染到内存和缓冲区。当label的高度达到9182的时候,会使缓冲区变得很大。