CAKeyAnimation动画 练习 拍皮球及弹跳动画

创建拍皮球动画

  • 创建个皮球的ImageView(好吧,这是废话!!)及声明需要的变量
@property (nonatomic,strong)UIImageView *ballImage;
{
    __block NSMutableArray *values;  //存储动画的关键点
    __block  NSMutableArray *funs;   //存储对应关键点的动画方式kCAMediaTimingFunctionEaseIn kCAMediaTimingFunctionEaseOut
}

  • 设置imageView 的center(注:因为使用的是position动画 所以需要定义center)
  • 设计皮球弹起的公式,并生成数值代码如下
    __block float ballHeight=self.view.frame.size.height-40-self.ballImage.center.y;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        values=[[NSMutableArray alloc]init];
        funs=[[NSMutableArray alloc]init];
        while (ballHeight>10) { 
            ballHeight=  ballHeight/3*2;  //每次弹起是上次的2/3
            //一个弹跳 kCAMediaTimingFunctionEaseIn kCAMediaTimingFunctionEaseOut
            [values addObject:[NSValue valueWithCGPoint:CGPointMake(100, self.view.frame.size.height-40)]];
            [funs addObject:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]];
            
            
            [values addObject:[NSValue valueWithCGPoint:CGPointMake(100, self.view.frame.size.height-40-ballHeight)]];
            [funs addObject:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]];
            
            
        }

    });

  • 创建一个CAKeyframeAnimation的实例,及设置属性该demo涉及到的属性有keyPath、duration、values、timingFunctions;
    CAKeyframeAnimation *keyAnimation=[CAKeyframeAnimation animation];
    keyAnimation.keyPath=@"position";   //设置layer动画的属性
    keyAnimation.duration=0.35*values.count; //设置动画的持续时间
    keyAnimation.values=values;       //设置动画的关键点
    keyAnimation.timingFunctions=funs;  //设置动画的类型
    self.ballImage.layer.position=CGPointMake(100, self.view.frame.size.height-40);
    [self.ballImage.layer addAnimation:keyAnimation forKey:nil];

效果展示


QQ20170411-235714.gif

ok完成!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 10,531评论 5 13
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 12,717评论 6 30
  • 在iOS实际开发中常用的动画无非是以下四种:UIView动画,核心动画,帧动画,自定义转场动画。 1.UIView...
    请叫我周小帅阅读 8,381评论 1 23
  • iOS动画篇之CoreAnimation动画 9月 22, 2016发布在Objective-C App如果想被大...
    白水灬煮一切阅读 6,561评论 0 0
  • Core Animation Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,...
    45b645c5912e阅读 8,176评论 0 21