图片抖动(帧动画)

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转场的类型比较少.

你可能感兴趣的:(图片抖动(帧动画))