【CALayer-CALayer的基本属性 Objective-C语言】
一、接下来,我们来说这个Layer啊,
1.首先,Layer能接触到的,就是我们之前说截图啊,就是我们self.view里面,有一个layer属性,
[self.view.layer renderInContext:(CGContextRef t)];
那个里面,有一个layer属性,然后呢,是CALayer类型的,
接下来,我们就来学习一下这个layer,
那么,首先啊,CALayer,这一块儿,
1)好,在iOS当中,你能够看得见摸得着的东西,基本上都是UIView,比如说,按钮啊、Label啊、textField啊、图标啊、imageView,这些东西,都是UIView,
UIView,之所以能够显示在屏幕上,之所以你能够看的到它,之所以有颜色,是因为它内部有一个图层,它内部有一个图层,
2)然后呢,在你创建某一个UIView对象的时候,也就是,UIView alloc-init的时候,UIView的内部,系统给我们做的事情,UIView的内部,它会自动的创建一个图层,这个图层呢,就是我们“点儿”出来的那个CALayer,“点儿”出来的那个layer对象,就是那个CALayer对象,
3)通过UIView的layer属性,可以访问到这个图层,这是一点啊,
4)UIView,需要显示到屏幕上的时候,会去调用drawRect:方法,进行绘图,并且,将所有的内容,绘制到自己的图层上,绘图完毕以后,系统会将图层拷贝到屏幕上,最后完成了UIView的显示,
5)换句话说,UIView,本身是不具备显示功能的,之所以能够显示,是因为它内部有一个图层,才能够显示,
2.也就是说,你在模拟器上看到的一些东西,比如说这个,
这些东西,你看到的一个红色的、黄色的、实际上,这个View啊,实际上,并不是它View,在显示,而是View里面的图层,layer,在显示,
先记住啊,UIView本身是没有显示功能的,你之所以能看到它,是因为它里面的layer在起作用,
3.CALayer的基本使用
这个layer啊,layer里面呢,会有一些个属性,一会儿我们会去做一下代码啊,
把这些属性啊,给大家去展示一下,
4.然后呢,外面这一块儿啊,掌握这一块儿啊,也写了,CALayer、和、UIView之间的关系,
我们说,layer对象,是UIView里面的一个属性啊,然后呢,
1)CALayer啊,是负责内容的显示的,是显示内容和动画的,这是CALayer干的事情,
2)UIView呢,仅仅是负责监听、和、响应事件,
也就是说,我给一个imageView,添加了一个轻敲的手势,我一点它,它能够输出一个方法,那是UIView在去负责监听、在去负责响应这个事件,
你能够看得到imageView上面,有一张图片,是因为它里面有一个layer,是因为它里面有一个layer啊,然后呢,这个时候,可能有同学会问,那既然UIView,不能够设置显示功能,UIView是没有具备显示功能的话,为什么我们还能够去设置UIView的backgroundColor、等等一些东西,
我们UIView,能够设置backgroundColor,仅仅是因为系统为我们方便,给我们抛出来了这个属性,实际上,你给UIView设置backgroundColor,它的底层,是给你的layer,去设置一个backgroundColor,
系统只是为了我们方便,给我们提供了一个属性,然后呢,你在UIView里面,看起来能够设置颜色,实际上,是给它的底层,实际上,是给它的layer,去设置背景色,
再来说一下这个UIView、和、CALayer的问题,
1)一个UIView跟这个CALayer啊,我们能够看得见UIView,是因为你看到了它的颜色,都是CALayer,并不是UIView,只要你显示出来的东西,都是CALayer,UIView,仅仅是负责监听和处理事件的,这一点,面试可能会问,问什么,问“UIView跟CALayer的关系”:
一个是用来显示,
一个是用来负责监听、和、响应事件,
你就这么答,没错儿,
2)还有一点,我们之前说,UIView里面,drawRect:里面,获取到的上下文,是什么类型的,我们说,图片类型的上下文,获取到的是bitmap类型的,对,实际上,我们说,drawRect:里面,获取到的上下文,我们说,在UIView里面,写的东西,从哪儿蹦出来一个layer,实际上,这个layer啊,就是我们说,UIView里面显示的图层,所以说,我们这个获取上下文的时候,我们说,获取到的这个上下文,的类型,是layer类型的,因为你实际上,是画到了它这个UIView的layer上了,所以,我们管它叫做layer类型的上下文,这么来的啊,
好,然后呢,这个是关于CALayer的一个简单的介绍啊,
二、接下来,我们就来说这个CALayer的属性,
1.好,首先呢,CALayer,我们说,是负责一个UIView显示的,那么,它的属性呢,实际上,会比你的UIView要强大很多,为什么这么说,
我们说,UIView,你之所以能看的着,是因为它有一个layer,那虽然我们能够通过backgroundColor,能够去设置一个UIView的背景颜色,是因为底层,你给layer,去设置了背景颜色,还有一些属性,系统没有抛出来,好,比如说,
1)阴影:shadow
2)圆角:radius
3)边框宽度和颜色:border
这些东西,你在UIView里面,是“点儿”不出来的,
你“点儿”出来的,可能就是一个backgroundColor,那实际上,它还是给layer去设置的,
layer,实际上,属性,会比UIView,要强大很多,因为layer本身,就是专门负责显示的,
2.好,然后呢,接下来,我们就来设置一下layer的这些属性,
我们新建一份代码啊,
Name:02-CALayer基本属性
好,然后呢,在这个里边儿,我先来写一段儿代码,
就是搞一个UIView,搞到屏幕上面去啊,
UIView *redView = [[UIView alloc] init];
redView.frame = CGRectMake(100,100,100,100);
redView.backgroundColor = [UIColor redColor];
[self.view addSubview:redView];
这段儿代码,没问题吧,command + R,
好,这是我们这个UIView,就搞定了,
</
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/18613.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!