美文网首页iOS程序猿iOS Developer
iOS-关于View透明属性干货

iOS-关于View透明属性干货

作者: 有毒的程序猿 | 来源:发表于2017-02-15 17:36 被阅读3341次

前言

没啥好说的,安利大家一部局<霹雳布袋戏>,台湾的,是操偶师加配型而成非常好看,哈哈,是黄大大(俗称八音童子),一个人可以发出8种以上音调.里面经常用的一句:朋友,相杀吗?


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

1、alpha会影响自己的透明度,同时也会影响subView的透明度。
2、alpha设为空之后,UIView不会从响应者链中移除,仍然可以收到event。
3、更改alpha,默认是有动画效果的,这是因为图层在Cocoa中是由Core Animation中CALayer表示的,该动画效果是CALayer的隐含动画。当然也有办法禁用此动画效果。

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

当值设为YES时:
1、当前的UIView和subview都会被隐藏,而不管subview的hidden值为多少。
2、当前UIView会从响应者链中移除,而响应者链中的下一个会成为第一响应者

三、alpha - hidden 比较

1、对subView的影响: alpha会影响subView透明度,hidden也会影响subView
2、隐藏UIView: alpha设置为0可以隐藏UIView,hidden设置为YES也可以隐藏UIVIew,效果是一样的,使用hidden性能较高。

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

1、UIView当有背景颜色时:并且背景颜色有透明度(透明度不为1时),将opaque设置为YES性能较高。
2、UIVIew有背景颜色时:并且背景颜色的透明度为1,opaque的值不影响性能。
3、UIVIew没有背景颜色时:opaque的值不影响性能。

五、opacity - CALayer的属性
CALayer中opacity是一个浮点值,取值范围0~1.0,表示从完全透明到完全不透明。

1、opacity会影响自己的透明度,同时也会影响subLayer的透明度。
2、opacity设为空之后,CALayer不会从响应者链中移除,仍然可以收到event。

六、如何设置UIView透明,subView不透明

1、使用一张半透明的图片做背景。
这个方法可以达到要求,但是工程中应该尽量少加入资源,能不用图片的尽量不用图片。
2、使用colorWithWhite:alpha:方法

view.backgroundColor = [UIColor colorWithWhite:0.f alpha:0.5];

这也是使用比较多的方法,white后面的参数表示灰度,从0-1之间表示从黑到白的变化,alpha就是想要调整的透明度。
3、使用colorWithRed:green:blue:alpha:方法
设置alpha就是想要调整的透明度。
4、在xib或者storyBoard里面对背景进行设置
通过对背景颜色设置图中的opacity滑块调整透明度。

xib.png

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

UIColor *color = [UIColor blackColor];
bgView.backgroundColor = [color colorWithAlphaComponent:0.5];

相关文章

  • iOS-关于View透明属性干货

    前言 没啥好说的,安利大家一部局<霹雳布袋戏>,台湾的,是操偶师加配型而成非常好看,哈哈,是黄大大(俗称八音童子)...

  • 动画深入研究

    前言 分类 View动画,帧动画,自定义View动画,属性动画 View动画 平移,缩放,旋转,透明Transla...

  • Android动画分类

    动画分类 View动画、帧动画、属性动画 View动画包括:平移、旋转、缩放、透明度,View动画是一种渐近式动画...

  • iOS基础之OC简单控件知识了解(一)

    一.UIView属性 1.alpha 设置视图的透明度.默认为1. //完全透明 view.alpha=0; //...

  • 性能优化

    1.所有不透明的View 其opaque属性都设置为yes 减轻GPU工作

  • 性能优化之 view 的 opaque 属性

    首选说一下 opaque 这个属性, 是 不透明的意思, BOOL值,设置为 YES 表示 view不透明,设置为...

  • iOS内存优化

    把view设置为不透明,不透明的Views应该设置它们的opaque属性为YES。默认为 YES。a) 如果视图存...

  • Android补间动画原理分析

    补间动画有4种类型,平移,旋转,透明度,缩放。补间动画不会改变View的属性,只会改变显示效果.关于补间动画使用 ...

  • Android动画原理

    动画分类 补间动画 旋转、位移、透明度、缩放 属性动画 同样的属性动画也可以做到对View进行缩放、移动、旋转以及...

  • swif-闭包传值

    闭包传值 打开xclode,创建ios->single view application ->next ->pr...

网友评论

    本文标题:iOS-关于View透明属性干货

    本文链接:https://www.haomeiwen.com/subject/fsiqwttx.html