美文网首页iOS面试iOS面试&笔试
iOS 性能优化面试题(怎么检测图层混合?)

iOS 性能优化面试题(怎么检测图层混合?)

作者: 程序员_秃头怪 | 来源:发表于2019-08-10 20:20 被阅读14次

    1、模拟器debug- 选中 color blended layers红色区域表示图层发生了混合

    2、Instrument-选中Core Animation-勾选Color Blended Layers

    避免图层混合:

    1、确保控件的opaque属性设置为true,确保backgroundColor和父视图颜色一致且不透明

    2、如无特殊需要,不要设置低于1的alpha值

    3、确保UIImage没有alpha通道

    UILabel图层混合解决方法:

    iOS8以后设置背景色为非透明色并且设置label.layer.masksToBounds=YES让label只会渲染她的实际size区域,就能解决UILabel的图层混合问题

    iOS8 之前只要设置背景色为非透明的就行

    为什么设置了背景色但是在iOS8上仍然出现了图层混合呢?

    UILabel在iOS8前后的变化,在iOS8以前,UILabel使用的是CALayer作为底图层,而在iOS8开始,UILabel的底图层变成了_UILabelLayer,绘制文本也有所改变。在背景色的四周多了一圈透明的边,而这一圈透明的边明显超出了图层的矩形区域,设置图层的masksToBounds为YES时,图层将会沿着Bounds进行裁剪 图层混合问题解决了

    热文推荐

    2019 全网 iOS 面试题以及答案总结!

    相关文章

      网友评论

        本文标题:iOS 性能优化面试题(怎么检测图层混合?)

        本文链接:https://www.haomeiwen.com/subject/llkdjctx.html