Core Animation
简介:由Layer Kit 演变而来,不仅仅用来做动画。
UIView 与 CALayer 异同
同:都可以管理矩形块,管理子图层,做一些动画和变换。
异:UIVIew可以处理用户的交互,CALayer并不清楚响应链。
CALayer可以实现功能
- 阴影,圆角,带颜色边框
- 3D变幻
- 非矩形范围
- 透明遮罩
- 多级非线性动画
CALayer基本属性
contents 类型 id
// 你可以这样使用
layer.contents = (__bridge id)[UIImage imageNamed:@"png"].CGImage;
contentGravity 类型 NSString
//kCAGravityCenter
//kCAGravityTop
layer.contentGravity = kCAGravityResizeAspect
contentsScale 类型 CGFloat
//注意 必须手动设置 图层 contentScale 属性 否则 Retina 显示有问题
layer.contentsScale = [UIScreen mainScreen].scale;
//与UIView的clipsToBounds 类似
layer.maskToBounds = YES;
CALayer方法
//fromeLayer 该像素点本身的父图层
- (CGPoint)convertPoint:(CGPoint)point fromLayer:(CALayer *)layer;
//toLayer 目标图层
- (CGPoint)convertPoint:(CGPoint)point toLayer:(CALayer *)layer;
- (CGRect)convertRect:(CGRect)rect fromLayer:(CALayer *)layer;
- (CGRect)convertRect:(CGRect)rect toLayer:(CALayer *)layer;
/**与下面方法类似*/
- (CGPoint)convertPoint:(CGPoint)point fromView:(UIView *)view;
- (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view;
- (CGRect)convertRect:(CGRect)rect toView:(UIView *)view;
- (CGRect)convertRect:(CGRect)rect fromView:(UIView *)view;
网友评论