什么是CALayer:
在iOS系统中,能够在屏幕上显示的东西都是UIView,比如UIButton, UIImageView, UILable等等UI控件。
其实UIView本身并不具备显示的功能,UIView之所以能显示在屏幕上,是因为它内部的图层。图层就是CALayer对象,CALayer对象才具备显示的功能。
在创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),通过UIView的layer属性可以访问这个图层。当UIView需要显示到屏幕上时,会调用drawRect:方法进行绘图,并且会将所有内容绘制在自己的图层上,绘图完毕后,系统会将图层拷贝到屏幕上,于是就完成了UIView的显示。
CALayer的基本使用
UIView能够显示在屏幕上,完全是因为它内部的CALayer对象,所以我们可以通过访问UIView内部的CALayer对象,通过设置CALayer对象的属性,很方便的控制UIView的界面显示。例如,设置边框,显示圆角,旋转,阴影等等。
// 创建一个UIView并且添加到控制器的View上
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(100, 50, 150, 150)];
view.backgroundColor = [UIColor redColor];
[self.view addSubview:view];
1、设置边框
// 1.设置边框
view.layer.borderWidth = 10; // 边框小大
view.layer.borderColor = [UIColor greenColor].CGColor; // 边框的颜色 CGColor类型
2、设置圆角
// 2.设置圆角
view.layer.cornerRadius = 20; // 圆角半径
3、设置阴影
// 3.设置阴影
view.layer.shadowOffset = CGSizeMake(10, 20); // 阴影的偏移
view.layer.shadowColor = [UIColor lightGrayColor].CGColor; // 阴影的颜色
view.layer.shadowOpacity = 0.5; // 阴影的不透明度
4、旋转
// 4.旋转
<pre name="code" class="objc"> // M_PI_4是旋转的角度,后面三个参数决定图层旋转轴,0,0,1 表示绕着Z轴旋转
view.layer.transform = CATransform3DMakeRotation(M_PI_4, 0, 0, 1);