第6章 组透明

2018-09-08  本文已影响9人  cdd48b9d36e0

UIView有一个叫做alpha的属性来确定视图的透明度。CALayer有一个等同的属性叫做opacity,这两个属性都是影响子层级的。也就是说,如果你给一个图层设置了opacity属性,那它的子图层都会受此影响。

实现组透明的两种方法:

  1. 在info.plist文件中,设置UIViewGroupOpacity(key为Renders with group opacity)为YES(iOS7及以上的版本默认为YES);
  2. 设置CALayer的一个叫做shouldRasterize属性为YES。在应用透明度之前,图层及其子图层都会被整合成一个整体的图片,这样就没有透明度混合的问题了。默认情况下,所有图层拉伸都是1.0, 所以如果使用了shouldRasterize属性,就要确保设置rasterizationScale属性去匹配屏幕,以防止出现Retina屏幕像素化的问题。
button2.alpha = 0.5;
//有时候为了保持父视图和其子视图alpha一致还需要设置下面两个属性
button2.layer.shouldRasterize = YES;
button2.layer.rasterizationScale = [UIScreen mainScreen].scale;
上一篇下一篇

猜你喜欢

热点阅读