先看实际工作中遇到的两个bug:
(1)iPhone Qzone有一个导航栏背景随着页面滑动而渐变的体验,当页面滑动到一定距离时,会改变导航栏上title文本的颜色,但是有一个莫名其妙的bug,如下:
在iOS7、iOS8上面只会改变文字,而不会改变三个点的颜色。
(2)iPhone Qzone 5.2新加了一个抽屉需求,当为默认主题时抽屉背景需要使用纯白加0.92的alpha透明度,在iOS7、iOS8上面正常,在iOS6.1.3上面就黑一片.
这两个bug都很费解,后面发现真面目是下面这样的。
1. 一个iOS6系统bug:
通过UIColor系统api: - getRed:green:blue:alpha: 获取非 + colorWithRed:green:blue:alpha: api 构造的color(即whiteColor、grayColor、redColor等iOS默认自带的一批颜色)的三原色时,会有问题。
先看一个函数:
再看一段代码:
断点处打印结果:
iOS6.1.3:
iOS 7、iOS 8:
2. 一个iOS7及以后的系统bug:
当给UILabel设定的单行文本超出其frame.size.width时,系统会默认添加上三个点"...",在iOS7上当非第一次alloc init时指定textColor,后面动态指定textColr时,只会改变除文字的颜色,而不会改变“...”的颜色。在iOS6上面会连同文字和三个点颜色一起改变,废话不多说,看下面实验。
先看一段代码:
实验结果:
iOS6.1.3:
iOS7、iOS8: