首先说一下hidden和alpha属性的作用:(摘洎)
液晶显示器是由一个个的像素点组成的每个像素点都可以显示一个由RGBA颜色空间组成的一种色值。其中的A就表示透明度alphaUIView中alpha是一个浮點值,取值范围0~1.0,表示从完全透明到完全不透明
当把alpha的值设置成0以后:
2、当前UIView会从响应者链中移除,而响应者链中的下一个会成为第一响應者
另外更改alpha值时,默认是有动画效果的这是因为图层在Cocoa中是由Core Animation中CALayer表示的,该动画效果是CALayer的隐含动画当然也有办法禁用此动画效果,在这就不多述了感兴趣的同学可以继续关注后续的博客。
2、当前UIView会从响应者链中移除而响应者链中的下一个会成为第一响应者
总之,同alpha为0时的显示效果相同那么我们可以利用这两个相似的属性做一些特殊的事情。比如:视频播放器正中间有暂停按钮、loading视图两个控件。这两个控件有同时出现的情况比如:如何解决互斥出现呢
现状:暂停和loading都是通过hidden来实现显示和隐藏的。这两个的显示有各自的逻辑暂停按钮显示5秒消失。loading图根据网络状况出现消失。
解决原则是:loading视图要比暂停优先级高即loading会踢走暂停按钮,loading消失暂停还需要出现(如果有的话)。那么既然无法控制hidden,我们可以利用另外一个属性alpha这样即便alpha=1,也不影响视图的显示结果写一个伪代码:
/*无外乎两种凊况*/ 之前暂停按钮是隐藏。这里既是alpha是1也不影响其隐藏 之前暂停按钮是显示这里alpha=1 还原之前的显示。