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
//创建基础动画
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
相关文章推荐
- ios--随笔二
- UVa 11111 - Generalized Matrioshkas
- NSMutableAttributedString
- iOS开发:XIB之AutoLayout添加约束
- NSMutableAttributedString
- 判断iOS设备型号
- iOS 生成二维码
- iOS企业开发In House ipa发布流程
- iOS开发zhiATM机的设计与实现
- 使用设计模式中的Singleton单例模式来开发iOS应用程序
- iOS7程序后台运行
- iOS开发企业版ipa分发(in-house)
- iOS LeftMenu抽屉效果与ScrollView共存时的手势冲突
- 获取iOS应用中当前处于Activity状态的ViewController
- iOS开发~CocoaPods使用详细说明
- iOS开发——GCDAsyncSocket
- iOS开发拓展篇—CoreLocation定位服务
- ios开发之你真的了解了KVC吗?
- iOS 手势操作:拖动、捏合、旋转、点按、长按、轻扫、自定义
- iOSURL编码