CALayer
- 在iOS中,UIView之所以能显示在屏幕上,完全是因为它内部有一个图层
- 在创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),通过UIView的layer属性可以访问这个层
- 当UIView需要显示到屏幕上时,会调用drawRect:方法进行绘制,并且会将所有内容绘制在自己的图层上,绘图完毕后,系统会将图层拷贝到屏幕上,于是就完成了UIView的显示
- 也就是说:UIView本身不具备显示的功能,是它内部的层才有显示功能
// 设置阴影
// Opacity:不透明度
_redView.layer.shadowOpacity = 1;
// 阴影偏移
_redView.layer.shadowOffset = CGSizeMake(10, 10);
// 阴影颜色
_redView.layer.shadowColor = [UIColor yellowColor].CGColor;
// 阴影模糊半径
_redView.layer.shadowRadius = 50;
// 圆角半径
_redView.layer.cornerRadius = 50;
//是否将超出根层范围的裁切掉
_redView.layer.masksToBounds = YES;
// 边框
_redView.layer.borderWidth = 1;
// 边框颜色
_redView.layer.borderColor = [UIColor whiteColor].CGColor;
//通过transform属性可以设置图层的形变
_redView.layer.transform
// 创建图层
CALayer *layer = [CALayer layer];
layer.frame = CGRectMake(50, 50, 200, 200);
//背景颜色
layer.backgroundColor = [UIColor redColor].CGColor;
// 设置图层内容
layer.contents = (id)[UIImage imageNamed:@"icon"].CGImage;
// 设置锚点(决定了position是哪一点)
layer.anchorPoint = CGPointMake(0.5, 1);
// 设置在父图层中的位置
layer.position = CGPointMake(100 , 100);
[self.view.layer addSublayer:layer];
- 图层的很多属性是有隐式动画,就是说改变图层的这些属性,就会自动的有动画效果,这些属性有一个统一的标志,在注释中有
Animatable
标注的