Layer|Layer 动画
基础 单独的layer
- 不需要附加到 view 上就能直接显示在屏幕上的单独的 layer 有 AVCaptureVideoPreviewLayer 和 CAShapeLayer
- 改变任何属性就会触发旧值到新值
- 改变属性隐式动画的 layer 不起作用,UIView 默认情况是禁止 layer 动画,但是在 animation block 中能用
- 当 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 [UIViewanimateWithDuration:0.3 animations:^{
6NSLog(@"inside animation block: %@",
7[myView actionForLayer:myView.layer forkey:@"position"]);
8 }];
9
【Layer|Layer 动画】打印结果
1 outside animation block:
2 inside animationblock:
对于 view 中的 layer 来说只会进行到搜索 action 这一步,但是对于单独的 layer 还有其它四个步骤要完成,详情见 CALayer 的官方文档对 actionForKey 的说明。
推荐阅读
- Python基础|Python基础 - 练习1
- Java|Java基础——数组
- Java基础-高级特性-枚举实现状态机
- 营养基础学20180331(课间随笔)??
- iOS面试题--基础
- HTML基础--基本概念--跟着李南江学编程
- Unity和Android通信系列文章2——扩展UnityPlayerActivity
- 2018-04-16动画练习作业
- typeScript入门基础介绍
- c++基础概念笔记