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()`)

iOS开发UI篇—核心动画(UIView封装动画)

iOS开发UI篇—核心动画(UIView封装动画)

当我将 UIView 动画放在不同类的 containerView 中时,为啥我的 UIView 动画不起作用?

ios之UIview动画

ios 动画学习(-)UIView 自带动画