您的位置:首页 > 移动开发 > IOS开发

IOS动画

2016-03-16 19:47 387 查看
基础动画

//创建基础动画
CABasicAnimation * basic = [CABasicAnimation animation];
//动画路径
basic.keyPath = @"position";

//设置初始状态
// basic.fromValue = [NSValue valueWithCGPoint:CGPointMake(0, 0)];
// //终止状态
// basic.toValue = [NSValue valueWithCGPoint:CGPointMake(300, 300)];

//动画距离
basic.byValue = [NSValue valueWithCGPoint:CGPointMake(200, 200)];

//动画的初始和结束的模式 fillMode和removedOnCompletion要配合使用
basic.fillMode = kCAFillModeForwards;// @"forwards";
//动画完成在layer中删除
basic.removedOnCompletion = NO;

//如果初始状态就是当前动画未执行的位置

//动画时间
basic.duration = 1;

//动画的加速度
basic.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
//animation.timingFunction = [CAMediaTimingFunction functionWithControlPoints:0.5 :0 :0.9 :0.7];

//添加动画
[_animationView.layer addAnimation:basic forKey:@"basic"];

关键帧动画

//创建关键帧动画
CAKeyframeAnimation * keyframe = [CAKeyframeAnimation animation];

keyframe.keyPath = @"position.x";

//设置关键帧的位置
keyframe.values = @[@0,@10,@-10,@10,@0];

//设置关键帧的时间
keyframe.keyTimes = @[ @0, @(1 / 6.0), @(3 / 6.0), @(5 / 6.0), @1 ];

//无需设置起始位置
keyframe.additive = YES;

//calculationMode设置加速度,kCAAnimationPaced保持恒定的加速度,如果设置calculationMode,keyTimes失效
keyframe.calculationMode = kCAAnimationPaced;

//重复次数
keyframe.repeatCount = HUGE_VALF; //MAXFLOAT;

//设置时间
keyframe.duration = 0.5;

[_animationView.layer addAnimation:keyframe forKey:@"keyframe"];

过度动画
//创建过度动画
CATransition * transition = [CATransition animation];
transition.type = @"suckEffect";
transition.subtype = @"fromLeft";
transition.duration = 2;
[self.imageView.layer addAnimation:transition forKey:nil];
/* 过渡效果
fade //交叉淡化过渡(不支持过渡方向) kCATransitionFade
push //新视图把旧视图推出去 kCATransitionPush
moveIn //新视图移到旧视图上面 kCATransitionMoveIn
reveal //将旧视图移开,显示下面的新视图 kCATransitionReveal
cube //立方体翻滚效果
oglFlip //上下左右翻转效果
suckEffect //收缩效果,如一块布被抽走(不支持过渡方向)
rippleEffect //滴水效果(不支持过渡方向)
pageCurl //向上翻页效果
pageUnCurl //向下翻页效果
cameraIrisHollowOpen //相机镜头打开效果(不支持过渡方向)
cameraIrisHollowClose //相机镜头关上效果(不支持过渡方向)
*/

/* 过渡方向
kCATransitionFromRight
kCATransitionFromLeft
kCATransitionFromBottom
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: