【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,就搞定了,

</

  • 10
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清风清晨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值