Core Animation 核心动画 (1)

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;

maskToBunds

//与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;

你可能感兴趣的:(Core Animation 核心动画 (1))