怎样才能把UIView.hidden=NO的啥时候才能把这块区域也去掉

液晶显示器是由一个个的像素点組成的每个像素点都可以显示一个由RGBA颜色空间组成的一种色值。其中的A就表示透明度alphaUIView中alpha是一个浮点值,取值范围0~1.0,表示从完全透明到完铨不透明

1、alpha会影响自己的透明度,同时也会影响subView的透明度

2、alpha设为空之后,UIView不会从响应者链中移除仍然可以收到event。

3、更改alpha默认是有動画效果的,这是因为图层在Cocoa中是由Core Animation中CALayer表示的该动画效果是CALayer的隐含动画。当然也有办法禁用此动画效果

该属性为BOOL值,用来表示UIView是否隐藏默认值是NO。

2、当前UIView会从响应者链中移除而响应者链中的下一个会成为第一响应者

该属性为BOOL值,UIView的默认值是YES但UIButton等子类的默认值都是NO。opaque表示当前UIView是否不透明不过搞笑的是事实上它却决定不了当前UIView是不是不透明,比如你将opaque设为NO该UIView照样是可见的。其作用在于:给绘图系統提供一个性能优化开关如果该值为YES,那么绘图在绘制该视图的啥时候才能把整个视图当做不透明对待这样,绘图系统在执行绘图过程中会优化一些操作并提供系统性能;如果是设置为NO绘图系统将其和其他内容平等对待,不去做优化操作为了性能方面的考量,默认被置为YES(意味着优化)

1、UIView当有背景颜色时:并且背景颜色有透明度(透明度不为1时),将opaque设置为YES性能较高。

2、UIVIew有背景颜色时:并且背景颜色的透明度为1opaque的值不影响性能。

3、UIVIew没有背景颜色时:opaque的值不影响性能

CALayer中opacity是一个浮点值,取值范围0~1.0,表示从完全透明到完全不透明

1、opacity会影响洎己的透明度,同时也会影响subLayer的透明度

2、opacity设为空之后,CALayer不会从响应者链中移除仍然可以收到event。

1、使用一张半透明的图片做背景

这个方法可以达到要求,但是工程中应该尽量少加入资源能不用图片的尽量不用图片。

这也是使用比较多的方法white后面的参数表示灰度,从0-1の间表示从黑到白的变化alpha就是想要调整的透明度。

设置alpha就是想要调整的透明度

通过对背景颜色设置图中的opacity滑块调整透明度。

这是一个實例方法,一个UIColor的实例调用此方法后会返回一个带透明度的UIColor.使用方法如下:

首先说一下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 还原之前的显示。


我要回帖

更多关于 啥时候才能 的文章

 

随机推荐