UIView的透明属性hidden、alpha、opaque

来源:互联网 发布:php读取access数据库 编辑:程序博客网 时间:2024/05/25 12:21

UIView的透明属性hidden、alpha、opaque

alpha

UIView中的alpha是一个浮点值,取值范围0~1.0,表示从完全透明到完全不透明。
当把alpha的值设置为0以后:
1、当前的UIView和subview都会被隐藏,而不管subview的alpha值是多少。
2、当前UIView会从响应者链中移除,而响应者链中的下一个会成为第一响应者
alpha的默认值是1.0,即不隐藏。
另外:更改alpha值时,默认是有动画效果的,这是因为图层在Cocoa中是由Core Animation中CALayer表示的,该动画效果是CALayer的隐藏动画。当然也是有办法禁用此动画效果。

== ==

hidden

该属性为BOOL值,用来表示UIView是否隐藏,默认值是NO。
当值设为YES时:
1、当前的UIView和subview都会被隐藏,而响应者链中的下一个会成为第一响应者
总之,同alpha为0时的显示效果相同。

====

opaque

该属性值为BOOL值,UIView的默认值是YES,但UIButton等子类的默认值都是NO。opaque表示当前UIView是否不透明,不过事实上,它却决定不了当前UIView是不是不透明,比如你将opaque设为NO,该UIView照样是可见的。(上文说过,是否可见是由alpha或hidden属性决定的)。
opaque属性的真实用处是给绘图系统提供一个性能优化开关。当opaque设置为YES时,GPU就不会再利用图层颜色合成真正的色值,因此,如果opaque被设置为YES,而对应UIView的alpha属性不为1.0的时候,就会有不可预料的情况发生。

====

总结

当把UIView的alpha属性设为0,或者,把hidden 设为YES的时候,当前UIView和它所包含的子UIView都会变成不可见,同时也不会再响应event事件,
注意这里是或的关系,即只要设置了其中的一个都会有此效果,而不管另外一个属性的值是什么。

0 0