UIView的hidden,alpha,opaque属性,UIColor的opacity属性

这几个属性经常会让人迷惑,组合不好就会得到不想要的结果。

简单的解释网上有很多

1.UIView的hidden

这个比较简单粗暴,不仅自己看不到了,所有的subview都看不到了,也不能接受事件了。

2.UIView的alpha

这个也比较简单,设置view的透明度,和hidden一样,所有的subview跟着一块儿变,alpha的极端情况,即为0的时候,就跟hidden一样了。

alpha=0和hidden=YES的区别不是很明确,文档上写的也不是很清楚。

根据http://stackoverflow.com/questions/5146947/what-is-the-impact-of-view-alpha-0-vs-view-hidden-yes

的描述,结果上来看没什么区别,不过alpha=0的设置还是会占用硬件来进行计算。

3.UIColor的opacity

这个影响的只是当前view的背景透明度,不影响subview,也就是说不想subview跟着一块儿变得话就用这个。opacity设为0也可以收到事件。

4.UIView的opaque

其实这个东西没啥用,当alpha设为1的时候,opaque设成啥都不会影响最后的效果,而当alpha小于1的时候,根据apple的开发文档,会产生意想不到的后果。

既然这样,也就是说alpha=1的时候,opaque=YES,alpha<1的时候,opaque=NO,还弄这么个属性干啥?

根据http://stackoverflow.com/questions/10444212/uiview-opaque-property

的描述,实际上也可以看出opaque的设置也没啥用处。

如果apple够聪明的话,是完全可以仅仅根据alpha来做处理的。

猜你喜欢

转载自weiqingfei.iteye.com/blog/2215255