缓动函数

一、缓动函数能实现ios 动画中不能实现的动画

1.缓动涵数的动画效果是建立在CALayer层级的关键帧动画基础之上

2.缓动函数是一系列模拟物理(如抛物线)方程式的统称,用以计算给定两点之间的插值

3.两点之间插的值越多,效果越好,但是会耗费更多的性能

4.只有理解了缓动函数的原理才有可能写出自己想要的效果


二、缓动函数的联系缓动函数与关键帧动画的联系

1.关键帧动画需要提供很多的帧来完善动画效果

2.关键帧动画的帧可以通过一定的数学计算来提供需要的帧数

3.关键帧动画只需要提供起始点,结束点,就可以通过缓动函数来计算中间缺失的帧

4.帧数越多,动画越流畅,但同时耗费更多的CPU性能


三、实现基本动画类型

- (void)keyBaseAnimation{

    // 添加显示用的view

    UIView *showView = [[UIViewalloc] initWithFrame:CGRectMake(0,0,100, 100)];

    showView.layer.cornerRadius  =50;

    showView.layer.masksToBounds =YES;

    showView.backgroundColor     = [UIColorredColor];

    [self.viewaddSubview:showView];

    // 基本动画类型

    CABasicAnimation *basicAnimation = [CABasicAnimation animation];

    basicAnimation.keyPath           =@"position";

    basicAnimation.duration          =4.f;

    

    // fromValue = A | toValue = B

    basicAnimation.fromValue = [NSValue valueWithCGPoint:showView.center];

    basicAnimation.toValue   = [NSValue valueWithCGPoint:CGPointMake(200,200)];

    

    showView.center = CGPointMake(200,200);

    [showView.layer addAnimation:basicAnimation forKey:nil];

}


四、关键帧动画类型

- (void)keyFrameAnimation{

    CAKeyframeAnimation *keyFrameAnimation = [CAKeyframeAnimationanimation];

    keyFrameAnimation.keyPath              =@"position";

    keyFrameAnimation.duration             =4.f;

    

    //缓动函数与关键帧的嫁接

    keyFrameAnimation.values = [YXEasingcalculateFrameFromPoint:showView.center     //开始点

                                                        toPoint:CGPointMake(200,200)//结束点

                                                           func:BounceEaseInOut    //func

                                                     frameCount:30 *4];

    showView.center =CGPointMake(200,200);

    [showView.layeraddAnimation:keyFrameAnimation forKey:nil];

}



 缓动函数下载地址:http://download.csdn.net/detail/baitxaps/8890629


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值