这几个属性经常会让人迷惑,组合不好就会得到不想要的结果。
简单的解释网上有很多
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来做处理的。