缓动函数

一、缓动函数能实现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


你可能感兴趣的:(缓动函数)