一、接下来,我们来说这个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,就搞定了, </