CALayer基本介绍与常见属性

属性框架:QuartzCore

CA: CoreAnimation -> 核心动画,所有的核心动画都是添加给layer的!

与UIView的区别:

1、layer负责内容的展示,不接受任何用户交互!

2、UIView继承自UIResponder,可以接受用交互,执行事件处理操作!

创建CALayer

 1     // 1.创建
 2     CALayer *redL = [CALayer layer];
 3     
 4     // 2.设置大小
 5     redL.bounds = CGRectMake(0, 0, 100, 100);
 6 
 7     // 3.设置位置 -> 不是center! 是position, 我们给视图设置的center,最终是交给了layer的position的!
 8     redL.position = CGPointMake(150, 180);
 9     
10     // 4.背景色 -> 需要转为CGColorRef类型的颜色!
11     redL.backgroundColor = [UIColor redColor].CGColor;
12     
13     // 5.添加
14     [self.view.layer addSublayer:redL];

常见属性:1、边框;2、阴影;3、内容(要以设置背景图片);4、圆角(masksToBounds会切掉阴影)

 1     // MARK: - 1.边框 -> 向里面走!
 2     //    _redLayer.borderColor = [UIColor yellowColor].CGColor;
 3     //    _redLayer.borderWidth = 10;
 4     
 5     // MARK: - 2.阴影 -> shadow
 6     // 阴影默认向上偏移3个点! offset
 7     _redLayer.shadowOpacity = 1.0;
 8     // 阴影的颜色
 9     _redLayer.shadowColor = [UIColor blueColor].CGColor;
10     _redLayer.shadowOffset = CGSizeMake(100, 100);
11     _redLayer.shadowRadius = 50;
12 //    _redLayer.shadowPath = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, 100, 100)].CGPath;
13     
14     // MARK: - 3.内容
15     // 还可以直接设置背景图片!
16     // __bridge id 桥接 -> 将cgimage转为QuartzCore框架下得id类型!
17     // 以后可能还有其他的桥接形式!
18 //    _redLayer.contents = (__bridge id _Nullable)([UIImage imageNamed:@"ice"].CGImage);
19     _redLayer.contents = (__bridge id)[UIImage imageNamed:@"ice"].CGImage;
20     
21     // MARK: - 4.圆角
22     _redLayer.cornerRadius = 20;
23     _redLayer.masksToBounds = YES; // 会切掉阴影部分
1 // 利用控制器视图layer的contents属性,直接设置背景图片!
2 //    self.view.layer.contents = (__bridge id)[UIImage imageNamed:@"bg"].CGImage;
原文地址:https://www.cnblogs.com/panda1024/p/6256528.html