iOS开发中,有很多设置透明的方法.
故事板上的一些设置
有以下几个
-
第一个是view的颜色设置里面
1.opacity(译为:不透明度)
这里是常用的颜色设置,和代码创建的颜色设置是一样的效果,但是要注意的是里面的opacity只是对颜色的设置,对容器中其他view并没有什么影响
效果如下
opacity翻译过来是不透明度的意思,但是在这里我只能理解为颜色的透明度,我感觉这个和PS或其他照片处理工具里调试的颜色透明差不多,
-
alpha
而和它意思相近的还有一个是上图的background上面的alpha,和opacity作用是不同的,alpha意思为:透明度
对比看就是知道这个和opacity的区别了(上传图片压缩,途中文字和北京是都变成透明的了)
最里层的view是蓝色
也就是说alpha直接影响的是view以及内部文字的透明,再看一下下面的图片做一下对比会更清楚
这里我将中间层黄色view设置alpha为0.5,直接导致它的颜色透明能看到底层红色,同时,也导致最里层蓝色view和红色重叠成紫色
所以这里的alpha是能直接影响view容器中也就是全局的所有子控件的颜色的!
至于听说的透明度影响性能的说法:
他们在模拟器中运行内存中的大小好像并没有什么区别,但在实际运行的性能的影响有待验证
3.Hidden
很直接,字面意思,是个BOOL值,勾选就直接隐藏掉了,代码中作用一样
4.opaque
没有效果也最神奇的opaque
查资料显示opaque是影响绘图层的一个属性,也是会影响性能的,个人有待证实,还不知道如何看出差别
opaque = YES,不透明; opaque = NO,透明
该属性为BOOL值,UIView的默认值是YES,但UIButton等子类的默认值都是NO。opaque表示
当前UIView是否不透明,不过搞笑的是事实上它却决定不了当前UIView是不是不透明,比如你将opaque
设为NO,该UIView照样是可见的。其作用在于:给绘图系统提供一个性能优化开关。如果该值为YES,那么
绘图在绘制该视图的时候把整个视图当做不透明对待。这样,绘图系统在执行绘图过程中会优化一些操作并
提供系统性能;如果是设置为NO,绘图系统将其和其他内容平等对待,不去做优化操作。为了性能方面的考
量,默认被置为YES(意味着优化)。
来自CSDN作者u010850094的一片文章
ios开发之View属性hidden, opaque, alpha, opacity的区别
该文章说明很详细,还有关于透明度对时间的响应链的影响,都有说明.
而如果我们在代码中设置使用 RGBA中的alpha设置透明度的话,效果效果一样,是会影响到容器中的subView的透明度的