UIView动画
Posted PJXWang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UIView动画相关的知识,希望对你有一定的参考价值。
CAAnimation的子类,用于做转场动画,能够为层提供移出屏幕和移入屏幕的动画效果
type:动画过渡类型
subtype:动画过渡方向
startProgress:动画起点(在整体动画的百分比)
endProgress:动画终点(在整体动画的百分比)
CATransition *ca=[CATransition animation];
//设置过度效果
[email protected]"cube";
//设置动画的过度方向(向左)
ca.subtype=kCATransitionFromLeft;
//设置动画的时间
ca.duration=1.0;
//添加动画
self.redView.backgroundColor = [UIColor blueColor];
[self.redView.layer addAnimation:ca forKey:nil];
CAAnimation的子类,可以保存一组动画对象,将CAAnimationGroup对象加入层后,组中所有动画对象可以同时并发运行
animations:用来保存一组动画对象的NSArray
默认情况下,一组动画对象是同时运行的,也可以通过设置动画对象的beginTime属性来更改动画的开始时间
// 平移动画
CABasicAnimation *a1 = [CABasicAnimation animation];
a1.keyPath = @"transform.translation.y";
a1.toValue = @(100);
a1.duration = 1.0;
a1.beginTime = 0;
a1.fillMode = kCAFillModeForwards;
// 缩放动画
CABasicAnimation *a2 = [CABasicAnimation animation];
a2.keyPath = @"transform.scale";
a2.toValue = @(0.5);
a2.duration = 1.0;
a2.beginTime = 1.0;
a2.fillMode = kCAFillModeForwards;
// 旋转动画
CABasicAnimation *a3 = [CABasicAnimation animation];
a3.keyPath = @"transform.rotation";
a3.toValue = @(M_PI_4);
a3.duration = 1.0;
a3.beginTime = 2.0;
a3.fillMode = kCAFillModeForwards;
// 组动画
CAAnimationGroup *groupAnima = [CAAnimationGroup animation];
groupAnima.animations = @[a1, a2, a3];
//设置组动画的时间
groupAnima.duration = 3;
groupAnima.fillMode = kCAFillModeForwards;
groupAnima.removedOnCompletion = NO;
[self.redView.layer addAnimation:groupAnima forKey:nil];
以上是关于UIView动画的主要内容,如果未能解决你的问题,请参考以下文章
如何为 UIView 关键帧动画设置动画曲线(`func UIView.animateKeyframes()`)