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