美文网首页
动画的种类

动画的种类

作者: e9a5b92a9e6c | 来源:发表于2018-05-10 17:21 被阅读0次

CAAnimation相关的几个动画类的关系图


image

设定动画的属性和说明属性说明


image

一些常用的animationWithKeyPath值的总结


image

//围绕y轴旋转
CABasicAnimation *transformAnima = [CABasicAnimation animationWithKeyPath:@"transform.rotation.y"];
transformAnima.fromValue = @(M_PI_2);
transformAnima.toValue = @(M_PI);
transformAnima.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transformAnima.autoreverses = YES;
transformAnima.repeatCount = HUGE_VALF; t
ransformAnima.beginTime = CACurrentMediaTime() + 2;
//防止动画结束后回到初始状态只需设置removedOnCompletion、fillMode两个属性就可以了。
transformAnima.removedOnCompletion = NO;
transformAnima.fillMode = kCAFillModeForwards;

解释:为什么动画结束后返回原状态?
首先我们需要搞明白一点的是,layer动画运行的过程是怎样的?其实在我们给一个视图添加layer动画时,真正移动并不是我们的视图本身,而是 presentation layer 的一个缓存。动画开始时 presentation layer开始移动,原始layer隐藏,动画结束时,presentation layer从屏幕上移除,原始layer显示。这就解释了为什么我们的视图在动画结束后又回到了原来的状态,因为它根本就没动过。
这个同样也可以解释为什么在动画移动过程中,我们为何不能对其进行任何操作。
所以在我们完成layer动画之后,最好将我们的layer属性设置为我们最终状态的属性,然后将presentation layer 移除掉。

https://www.jianshu.com/p/79a0b3c7086c

相关文章

网友评论

      本文标题:动画的种类

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