美文网首页
Layer 动画

Layer 动画

作者: sudhengshi | 来源:发表于2018-05-28 20:40 被阅读11次

基础

单独的layer

  • 不需要附加到 view 上就能直接显示在屏幕上的单独的 layer 有 AVCaptureVideoPreviewLayer 和 CAShapeLayer
  • 改变任何属性就会触发旧值到新值

附加到 view 上的 layer

  • 改变属性隐式动画的 layer 不起作用,UIView 默认情况是禁止 layer 动画,但是在 animation block 中能用

CAAction

  • 当 layer 属性改变时,layer 都会寻找合适的action来实行这个改变。layer向它的delegate 发送 actionForLayer:forKey: 消息找对应的 action。如果是附加到view 上的 layer,当它的属性改变后会向 view 请求一个动作,如果这个属性的改变不是在动画 block 中是不会有效的。
1  //无效
2 NSLog(@"outside animation block: %@",
3 [myView actionForLayer:myView.layer forKey:@"position"]);
4 //在block才有效
5 [UIView  animateWithDuration:0.3 animations:^{
6              NSLog(@"inside animation block: %@",
7                [myView actionForLayer:myView.layer forkey:@"position"]);
8 }];
9

打印结果

    1 outside animation block: <null>
    2 inside animation  block: <CABasicAnimation: 0x8c2ff10>

对于 view 中的 layer 来说只会进行到搜索 action 这一步,但是对于单独的 layer 还有其它四个步骤要完成,详情见 CALayer 的官方文档对 actionForKey 的说明。

相关文章

  • CALayer 和 CAAnimation

    Layer Layer可以绘制的动画动画类型 CALayer position 和 anchorpoint Lay...

  • iOS核心动画 - 隐式动画

    添加layer代码: 执行layer动画: 添加view代码: 执行view动画 事务 Core Animatio...

  • 动画效果

    1.UIView和Layer 动画作用在Layer Layer不响应用户交互 UIView所有的动画都是基于Lay...

  • IOS 动画

    动画 Animation CALayer是动画产生的地方,当将动画添加到Layer层的时候,不能直接修改layer...

  • Layer 动画

    基础 单独的layer 不需要附加到 view 上就能直接显示在屏幕上的单独的 layer 有 AVCaptur...

  • layer动画

    推荐一篇博文:http://www.cocoachina.com/ios/20150521/11874.html

  • layer动画和动画委托的实现

    layer动画的实现 layer动画就是层动画,工作原理和视图动画相同。在开始或者是结束时间改变la ye r的属...

  • CoreAnimation 理解

    隐式动画的理解: 1,layer层的动画都伴随着一个隐式动画(默认0.25秒的动画,例子:通过layer 层更改一...

  • iOS动画暂停和继续

    执行动画过程中暂停和继续上次动画的状态继续执行动画,需要用到layer.speed 和 layer.timeOff...

  • iOS 几种简单动画

    UIView 动画 UIImageView 动画 CABasicAnimation 动画 给一个视图添加layer...

网友评论

      本文标题:Layer 动画

      本文链接:https://www.haomeiwen.com/subject/umknjftx.html