动画浅析

动画是iOS开发中非常常用的功能,我们可以通过动画做出非常炫目的效果,有趣的界面.下面简单介绍下动画的创建.

layer

每个view都有一个layer层,用来显示图形.layer也可以做动画.

  • 创建layer
    //创建layer
    CALayer *layer = [[CALayer alloc] init];
    //设置layer的阴影颜色
    layer.shadowColor = [UIColor redColor].CGColor;
    //设置layer的阴影偏移量
    layer.shadowOffset = CGSizeMake(10, 10);
    //设置layer的背景色
    layer.backgroundColor = [UIColor redColor].CGColor;
    //设置layer的frame
    layer.frame = CGRectMake(0, 0, 100, 100);
    //设置layer的锚点
    layer.anchorPoint = CGPointZero;
    //设置layer的position
    layer.position = CGPointZero;
    //将layer添加至父控件的layer上
    [_orangeView.layer addSublayer:layer];
注意:在创建layer时,必须设置frame与背景色,否则将无法显示出来.
  • 关于锚点(anchorPoint)与position

    position是决定了layer显示在父控件的哪个位置,默认position是该layer的中心点.

    anchorPoint决定了layer自身显示在position的哪个位置.

不设置position与anchorPoint

设置position为(0,0)

设置锚点为(0,0)

设置锚点和position同时为(0,0)

从上述设置可以看出:
1. position与锚点的默认点为中心点
2. position总是与锚点显示在同一位置
3. layer是否发生偏移有锚点决定

layer的动画设置

  • 我们可以通过设置layer的平移,缩放,旋转等属性来让layer做出动画效果.
    //设置偏移(相对于上一次)
   _layer.transform = CATransform3DTranslate(<#CATransform3D t#>, <#CGFloat tx#>, <#CGFloat ty#>, <#CGFloat tz#>)
    //设置旋转(相对于上一次)
   _layer.transform = CATransform3DRotate(<#CATransform3D t#>, <#CGFloat angle#>, <#CGFloat x#>, <#CGFloat y#>, <#CGFloat z#>);
    //设置缩放(相对于上一次)
   _layer.transform = CATransform3DScale(<#CATransform3D t#>, <#CGFloat sx#>, <#CGFloat sy#>, <#CGFloat sz#>)
    //设置旋转(相对于原始位置)
   _layer.transform = CATransform3DMakeRotation(<#CGFloat angle#>, <#CGFloat x#>, <#CGFloat y#>, <#CGFloat z#>)
    //设置缩放(相对于原始位置)
   _layer.transform = CATransform3DMakeScale(<#CGFloat sx#>, <#CGFloat sy#>, <#CGFloat sz#>)
    //设置偏移(相对于原始位置)
   _layer.transform = CATransform3DMakeTranslation(<#CGFloat tx#>, <#CGFloat ty#>, <#CGFloat tz#>)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 12,711评论 6 30
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 10,519评论 5 13
  • 在iOS实际开发中常用的动画无非是以下四种:UIView动画,核心动画,帧动画,自定义转场动画。 1.UIView...
    请叫我周小帅阅读 8,365评论 1 23
  • Core Animation Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,...
    45b645c5912e阅读 8,169评论 0 21
  • 转载:http://www.jianshu.com/p/32fcadd12108 每个UIView有一个伙伴称为l...
    F麦子阅读 11,465评论 0 13