在创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),通过UIView的layer属性可以访问这个层
@property(nonatomic,readonly,retain) CALayer *layer;
当UIView需要显示到屏幕上时,会调用drawRect:方法进行绘图,并且会将所有内容绘制在自己的图层上,绘图完毕后,系统会将图层拷贝到屏幕上。UIView之所以能够显示,完全是因为内部的CALayer对象
通过操作这个CALayer对象,可以很方便地调整UIView的一些界面属性,比如:阴影、圆角大小、边框宽度和颜色等
一、使用步骤
1.创建一个layer
CALayer *Mylayer=[CALayer layer];
2.设置layer的属性
Mylayer.bounds=CGRectMake(100, 100, 100, 100);
Mylayer.position=CGPointMake(100, 100);
3.设置需要显示的图片
Mylayer.contents=(id)[UIImage imageNamed:@”Image_Name”].CGImage;
4.设置圆角半径为10
Mylayer.cornerRadius=10;
5.如果设置了图片,那么需要设置这个属性为YES才能显示圆角效果
Mylayer.masksToBounds=YES;
6.设置边框
Mylayer.borderWidth=3;
Mylayer.borderColor=[UIColor brownColor].CGColor;
7.把layer添加到界面上
[self.view.layer addSublayer:Mylayer];
二、基本属性
CALayer有2个非常重要的属性:position和anchorPoint
@property CGPoint position;
用来设置CALayer在父层中的位置
以父层的左上角为原点(0, 0)
@property CGPoint anchorPoint;
称为“定位点”、“锚点”
决定着CALayer身上的哪个点会在position属性所指的位置
以自己的左上角为原点(0, 0)
它的x、y取值范围都是0~1,默认值为(0.5, 0.5)
三、代码示例
四、总结
UIView和CALayer对比
UIView 1.事件处理 2.位置变化 3.常用
CALayer 1.性能高 2.位置不变 3.不常用