美文网首页
《iOS核心动画高级技巧》笔记 — Part1

《iOS核心动画高级技巧》笔记 — Part1

作者: 纳兰合欢 | 来源:发表于2016-10-16 21:41 被阅读0次

中文译文地址

一、UIView与CALayer

UIView和CALayer关系图

UIView实现绘制自定义任务时,调用-drawRect:方法,为关联的图层设置contents属性的内容。

二、隐式动画

当改变CALayer的一个可做动画的属性时,属性目标值不会立刻在屏幕上显示出来,而是从先前得值平滑过渡到新的值

1、获取行为(改变属性时CALayer自动应用的动画)的流程:

当图层的一个可做动画的属性被修改时,图层的-actionForKey:方法被调用,参数为属性名称,

然后,触发以下流程:

获取属性隐式动画过程

2、动画实现:

(1)默认情况下,在当前线程的栈顶事物中被调用执行

(2)修改默认行为,示例如下:

[CATransaction begin];

[CATransaction setAnimationDuration:2.0];

self.colorLayer.backgroundColor = [UIColor colorWithRed:red green:green blue:blue alpha:1.0].CGColor;

if (self.flag) {

self.colorLayer.position = CGPointMake(self.colorLayer.position.x + 50, self.colorLayer.position.y);

}else{

self.colorLayer.position = CGPointMake(100, 100);

}

self.flag = !self.flag;

[CATransaction commit];

3、UIView关联的图层,隐式动画被禁用,因为:actionForLayer:forKey:返回值为nil

三、显示动画

相关的类对象关系图

显式动画类关系图(部分)

添加显示动画的方法:-addAnimation:forKey:(备注:该方法调用的时候,应该会创建CATransaction实例对象)

四、备注:相关委托方法

委托方法记录(部分)

相关文章

网友评论

      本文标题:《iOS核心动画高级技巧》笔记 — Part1

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