[关闭]
@buoge 2017-10-20T18:00:00.000000Z 字数 1028 阅读 2293

iOS 隐式动画和显式动画

iOS


1、隐式动画:不需要初始化任何类,系统自己处理的动画属性

这其实就是所谓的隐式动画。之所以叫隐式是因为我们并没有指定任何动画的类 型。我们仅仅改变了一个属性,然后Core Animation来决定如何并且何时去做动 画。Core Animaiton同样支持显式动画,

核心动画的隐式动画模型假定所有动画图层属性的变化应该是渐进的和异步的。

动态的动画场景可以在没有显式的动画图层时候实现。
改变动画显示的图层的属性将会导致图层隐式把旧值动画显示为新值,虽然动画是持续的,但是设置新的目标值会导致图层从当前状态动画过度到新的目标值

OrderSearchVC *search = [[OrderSearchVC alloc] init];
[self.navigationController pushViewController:search animated:YES];

2、显式动画:自己创建一个动画对象并附加到layer上

http://www.jianshu.com/p/1a5d1873603e

核心动画同事提供了一个显示动画模型。该显式动画模型需要你创建一个动画对象,并设置开始值和结束的值,显示动画不会开始执行,直到你把该动画应用到某个图层上面
CABasicAnimation *opAnim = [CABasicAnimation animationWithKeyPath:@opacity];
opAnim.duration = 1.0;
opAnim.fromValue = [NSNumber numberWithFloat:0.1];
opAnim.toValue= [NSNumber numberWithFloat:1.0];
opAnim.repeatCount = 1;
[view.layer addAnimation:opAnim forKey:@animateOpacity];

http://zhangbuhuai.com/implicit-animations/

根据我粗浅的理解,「隐式动画」中的所谓「隐式」,是相对于「显式动画」中的显式而言的。
实现显式动画时,往往会创建一个动画对象,譬如CAAnimation、CABasicAnimation、CAKeyframeAnimation,然后通过CALayer#addAnimation(_:forKey:)方法该动画对象绑定到layer中,简单来说,我们所选的动画类型是确定的

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注