核心动画(四)- 转场动画、组动画

来源:互联网 发布:淘宝男士挎包 单肩包 编辑:程序博客网 时间:2024/06/08 06:05

一、转场动画简单介绍

CAAnimation的子类,用于做转场动画,能够为层提供移出屏幕和移入屏幕的动画效果。iOS比Mac OS X的转场动画效果少一点

UINavigationController就是通过CATransition实现了将控制器的视图推入屏幕的动画效果

属性解析:

type:动画过渡类型

subtype:动画过渡方向

startProgress:动画起点(在整体动画的百分比)

endProgress:动画终点(在整体动画的百分比)

//创建核心动画CATransition *ca=[CATransition animation];//告诉要执行什么动画//设置过度效果ca.type=@"cube";//设置动画的过度方向(向左)ca.subtype=kCATransitionFromLeft;//设置动画的时间ca.duration=2.0;//添加动画[self.iconView.layer addAnimation:ca forKey:nil];

二、组动画简单说明

CAAnimation的子类,可以保存一组动画对象,将CAAnimationGroup对象加入层后,组中所有动画对象可以同时并发运行

属性解析:

animations:用来保存一组动画对象的NSArray

默认情况下,一组动画对象是同时运行的,也可以通过设置动画对象的beginTime属性来更改动画的开始时间

平移-旋转-缩放作为一组动画一起执行代码示例

// 平移动画CABasicAnimation *a1 = [CABasicAnimation animation];a1.keyPath = @"transform.translation.y";a1.toValue = @(100);// 缩放动画CABasicAnimation *a2 = [CABasicAnimation animation];a2.keyPath = @"transform.scale";a2.toValue = @(0.0);// 旋转动画CABasicAnimation *a3 = [CABasicAnimation animation];a3.keyPath = @"transform.rotation";a3.toValue = @(M_PI_2);// 组动画CAAnimationGroup *groupAnima = [CAAnimationGroup animation];groupAnima.animations = @[a1, a2, a3];//设置组动画的时间groupAnima.duration = 2;groupAnima.fillMode = kCAFillModeForwards;groupAnima.removedOnCompletion = NO;[self.iconView.layer addAnimation:groupAnima forKey:nil];
原创粉丝点击