##1、CALayer与UIView之间不得不说的秘密 在咱们学习使用CALayer以前,咱们先来回顾下UIView的基础建立和使用。 ###一、UIView的基本建立建立和设置 首先咱们来看看UIView的简单建立和一些简单的设置,以及怎样将建立好的UIView添加到VIew界面上进行显示的。学习
//利用初始化的方式建立一个UIView并固定UIView在View上的显示位置 UIView *view = [[UIView alloc] initWithFrame:CGRectMake(10, 100, 330, 200)]; //设置VIew上的背景颜色 view.backgroundColor = [UIColor redColor]; //将建立好的UIView添加到主界面View上 [self.view addSubview:view];
从上面的示例代码中咱们能够看出来,建立一个UIView是很简单的,同时设置它的各方面的属性也是很简单的,只须要根据它的属性代码来设置就行了,最后将建立设置好的UIView添加到主界面view上进行显示就行了 ###二、CALayer的基本建立和设置 上面咱们已经了解了UIView的简单的建立和设置,那么这里咱们也来看看CALayer的简单的建立和设置字体
// 利用初始化的方式来建立一个CALayer,同时固定其初始显示的位置和设置相应的属性 CALayer *layer = [[CALayer alloc] init]; layer.frame = CGRectMake(10, 320, 330, 200); //设置layer的显示颜色 layer.backgroundColor = [UIColor blueColor].CGColor; // 将图层添加到父图层 [self.view.layer addSublayer:layer];
###三、CALayer和UIView之间的相同点了不一样点 经过上面两个视图的建立示例代码咱们能够看出来两个视图之间存在相同点也存在不一样点:code
相同点:
图片
不一样点:
ci
#2、CALayer的基本设置 上面咱们看了CALayer的基本建立和一些简单的基本属性,那么接下来咱们来看看CALayer视图的一些基本设置;string
##一、简单属性的设置it
属性名 | 用途 | 备注 |
---|---|---|
bounds | 尺寸 | 可用CGRectMake来肯定视图的显示尺寸 |
position: | 定位点 | 肯定CAlayer视图的中心定位点 |
anchorPoint | 锚点 | 决定layer上的哪一个点在 position 点上,默认(0.5, 0.5),范围:(0,0) ~ (1,1) |
zPosition | z方向的层级 | 用来肯定CALayer视图在z方向上的视图 |
cornerRadius | 设置圆角 | 设置视图四个角的圆滑弧度,使其看着没有那么锐利 |
masksToBounds | 剪切 | 是否能够裁剪多余的图层,默认为NO |
对于这些简单属性的设置我就不一一罗列了,其实都是同样的都是经过上面的属性来定义就好。eg:
io
// 尺寸 layer.bounds = CGRectMake(0, 0, 200, 200); // 定位点 layer.position = self.view.center; // 锚点、支点 layer.anchorPoint = CGPointMake(0.5, 0.5);
以上则是CALayer的一些基本属性的设置,固然除去这些简单基本属性还有一些其余相对来讲稍显复杂的属性,那么下面我就来为你们简单的介绍一些CALayer中的一些稍显复杂的属性。table
##二、复杂(特殊)属性的设置基础
eg
://设置CALayer视图的边框颜色和宽度 layer.borderWidth = 5; layer.borderColor = [UIColor lightGrayColor].CGColor;
eg
:// 设置阴影、 尺寸、 layer.shadowOffset = CGSizeMake(10, 5); //设置颜色 layer.shadowColor = [UIColor redColor].CGColor; //设置透明度,透明度通常为(0~1) layer.shadowOpacity = 0.5; //设置圆角,圆角值都是大于0的数,数值越大圆角幅度越大 layer.shadowRadius = 10;
eg:
layer.contents = (__bridge id _Nullable)([UIImage imageNamed:@"image4.jpg"].CGImage);
经过上面这个代码咱们能够看出来给CALayer中填充图片内容再也不是想UIView中那样的直接填充了,而是须要将 UIImage 桥接(__bridge)到CGImage,注意:(__bridge id _Nullable),这个是用来将UIVIew中的一些控件转换为CALayer中可使用的关键代码
eg
//建立CATextLayer CATextLayer *textLayer = [[CATextLayer alloc] init]; //肯定位置 textLayer.frame = CGRectMake(10, 550, 300, 30); //设置填充内容 textLayer.string = @"这是layer填充的文字内容"; //设置CATextLayer在没有显示字体以前的颜色 textLayer.foregroundColor = [UIColor blackColor].CGColor; //设置CATextLayer 的背景颜色 textLayer.backgroundColor = [UIColor redColor].CGColor; //设置显示的字体高度和须要开辟显示字体的宽度 textLayer.font = (__bridge CFTypeRef _Nullable)([UIFont systemFontOfSize:20 weight:500]); //设置显示的文字高度 textLayer.fontSize = 20; //设置文字对齐方式 textLayer.alignmentMode = @"center";
以上就是CALayer的简单的建立和一些简单的属性设置,今天咱们就介绍到这里,明天咱们再来介绍CALayer的一些基本使用!