美文网首页
iOS核心动画之组透明

iOS核心动画之组透明

作者: 我是花老虎 | 来源:发表于2016-08-02 22:17 被阅读568次

layer的透明度alpha是影响到子layer的。也就是说如果父layer的透明度为0.5,那么子layer的透明度是原来自己的透明度的一半。
考虑下面这种情况。一个view上叠加一个label。view的背景色为白色,透明度为0.5。label的背景色为白色,alpha为0.5。
在view的边缘区域,最终的色值为alpha为0.5的白。在label区域,最终色值为alpha为0.5的白,加上alpha为0.5*0.5=0.25的白,总计为alpha为0.75的白色。效果就不太理想。


  • 如何解决
    理想情况下,我们希望先不考虑layer的alpha值,把子layer什么的合并成一个图片,然后对这张图片统一设置alpha值。
    有两种方法可以达到这个效果
    1. 设置Info.plist文件中的UIViewGroupOpacity为YES。在iOS7以后已经设置了,iOS6没有设置
    2. 设置组透明。
        self.exampleView?.layer.shouldRasterize = true
        self.exampleView?.layer.rasterizationScale = UIScreen.mainScreen().scale

相关文章

网友评论

      本文标题:iOS核心动画之组透明

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