一 Core Animation
核心动画是分三层进行的-动画层树(CALayer Tree)M、展示树(Presentation Tree)、以及渲染树(Render Tree)。
每一个动画层有着自己的坐标系,这个坐标系独立于其父动画层。在iOS上,动画层的坐标系原点在左上角,坐标轴向右向下延伸。
动画有隐式和显示之分。隐式动画指的是,无须创建动画对象,只需改变动画层的属性,让核心动画自己去完成动画效果。显示动画指的是,需要自己创建和管理动画对象,并且将它们应用到动画层,才能显示动画效果。
UIImageView有animationImages属性,如果将一个UIImage对象构成的NSArray数组赋值给它,UIImageView将轮流显示这些图像。给UIImageView发送startAnimating消息,那么它就开始逐帧显示动画了。animationDuration属性标明了每一帧动画占用的时间,默认1/30秒。animationRepeatCount属性标明了动画重复次数,缺省为0,表示不断重复下去。
方法:
+beginAnimations:context:标志动画代码开始
+commitAnimations:标志动画代码结束,程序会创建新的线程,并准备运行动画
+setAnimationStartDate:设置动画开始时间。
+setAnimationsEnabled:可以用来开启或禁止动画显示。
+setAnimationDelegate:设置代理,可以接收到UIView的代理方法。
+setAnimationWillStartSelector:设置动画开始前将发送给代理的方法。
+setAnimationDidStopSelector:设置动画停止后将发送给代理的方法。
+setAnimationDuration:设置动画持续时间。
+setAnimationDelay:设置一段时间,动画将在这段时间后开始执行。不建议使用
+setAnimationCurve:设置动画曲线,如开始慢,后面快。
+setAnimationRepeatCount:设置动画重复次数。
+areAnimationEnabled:检查是否已经启动动画。
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:2.0];
CGAffineTransform newTransform = CGAffineTransformRotate(view.transform, 3.14/2);
view.trnsform = newTransform;
[UIView commitAnimations];
核心动画是分三层进行的-动画层树(CALayer Tree)M、展示树(Presentation Tree)、以及渲染树(Render Tree)。
每一个动画层有着自己的坐标系,这个坐标系独立于其父动画层。在iOS上,动画层的坐标系原点在左上角,坐标轴向右向下延伸。
动画有隐式和显示之分。隐式动画指的是,无须创建动画对象,只需改变动画层的属性,让核心动画自己去完成动画效果。显示动画指的是,需要自己创建和管理动画对象,并且将它们应用到动画层,才能显示动画效果。
UIImageView有animationImages属性,如果将一个UIImage对象构成的NSArray数组赋值给它,UIImageView将轮流显示这些图像。给UIImageView发送startAnimating消息,那么它就开始逐帧显示动画了。animationDuration属性标明了每一帧动画占用的时间,默认1/30秒。animationRepeatCount属性标明了动画重复次数,缺省为0,表示不断重复下去。
方法:
+beginAnimations:context:标志动画代码开始
+commitAnimations:标志动画代码结束,程序会创建新的线程,并准备运行动画
+setAnimationStartDate:设置动画开始时间。
+setAnimationsEnabled:可以用来开启或禁止动画显示。
+setAnimationDelegate:设置代理,可以接收到UIView的代理方法。
+setAnimationWillStartSelector:设置动画开始前将发送给代理的方法。
+setAnimationDidStopSelector:设置动画停止后将发送给代理的方法。
+setAnimationDuration:设置动画持续时间。
+setAnimationDelay:设置一段时间,动画将在这段时间后开始执行。不建议使用
+setAnimationCurve:设置动画曲线,如开始慢,后面快。
+setAnimationRepeatCount:设置动画重复次数。
+areAnimationEnabled:检查是否已经启动动画。
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:2.0];
CGAffineTransform newTransform = CGAffineTransformRotate(view.transform, 3.14/2);
view.trnsform = newTransform;
[UIView commitAnimations];