欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

图片抖动(帧动画)

程序员文章站 2022-03-25 23:41:20
...

1.帧动画介绍:

    CAKeyframeAnimation它可以在多个值之间进行动画.
    设置多值之间的属性为:
    后面是一个数组,就是要设置的多个值.
    anim.values = @[];
    它还可以根据一个路径做动画.
    anim.path = 自己创建的路径.

2.图片抖动思路:

    其实就是做一个左右旋转的动画.先让它往左边旋转-5,再往右边旋转5度,再从5度旋转到-5度.
    就会有左右摇摆的效果了.

具体实现代码

        创建帧动画
        CAKeyframeAnimation *anim = [CAKeyframeAnimation animation];
        设置动画属性为旋转
        anim.keyPath = @"transform.rotation";
        设置属性值为多个属性
        anim.values = @[@(angle2radio(-5)),@(angle2radio(5)),@(angle2radio(-5))];
        设置动画执行次数
        anim.repeatCount = MAXFLOAT;
        添加动画
        [_imageView.layer addAnimation:anim forKey:nil];

3.根据圆形的路径做移动的效果.

创建路径
        UIBezierPath *path = [UIBezierPath 
                              bezierPathWithOvalInRect:CGRectMake(50, 50, 100, 100)];
       [path addLineToPoint:CGPointMake(200, 500)];
       
       把路径设为动画的属性
       anim.path = path.CGPath;

转场动画

  • 1.什么是转场动画?
    就是从一个场景转换到另一个场景,像导航控制器的push效果,就是一个转场.
  • 2.如何创建转场动画
      创建转场动画
      CATransition *anim = [CATransition animation];
      设置转场类型
      anim.type = @"cube";
      anim.duration = 1;
      设置转场的方向
      anim.subtype = kCATransitionFromLeft;
      设置动画的开始位置
      anim.startProgress = 0.5;
      设置动画的结束位置
      anim.endProgress  =0.8;
      添加动画.了
     [_imageV.layer addAnimation:anim forKey:nil];

  • 要执行动画的代码称为转场代码.
    转场动画要和转场代码写在同一个方法当中才有动画效果.
  • 3.UIView进行转场动画
       [UIView transitionWithView:self.imageV duration:1 
        options:UIViewAnimationOptionTransitionFlipFromRight 
        animations:^{
            转场代码
        } completion:^(BOOL finished) {
            动画执行完毕时调用.
        }];

使用UIView转场的类型比较少.