您的位置:首页 > 编程语言

核心动画编程

2012-08-08 17:30 92 查看
什么是核心动画:

核心动画是一个oc类的集合,这些类用来做图形渲染,投影和动画。

用核心动画,我们就能不通过底层图形API(如opengl)来为我们的应用程序创建动态动画用户接口。

核心动画能分为下面几个类别:

1,为展示(display)提供内容的层类(layer class);

2,动画和时间类

3,排版(layout)和限制类



层类(layer class)

层类是核心动画的基础,它为用UIview的开发者提供了抽象。CALayer提供了层的基本功能。它是所有核心动画层的父类。

核心动画层是mvc中的模型对象,它只提供展示的内容,而不负责去展示。

在views中显示layers

layers不能直接在window中显示,而必须加到一个view中,当和一个view配对以后layers为显示提供内容,view必须为layer提供事件处理。

iOS的view系统是直接建立在核心动画层上的。每个UIview自动创建一个CALayer类的实例,并把它设置为view的layer属性。

动画:

动画是现在用户接口的一个关键元素,核心动画中动画是完全自动的,没有动画循环或者定时器。

动画类和时间:

CABasicAnimation提供在层属性变量之间做简单的改写。

隐式动画:

显式动画:

核心动画也支持显式动画模型。显式动画模型需要我们创建一个动画对象,并设置开始和结束变量。

显式动画直到我们对层应用了此动画此动画才开始播放。

下面代码让一个层的透明度从完全不透明变为完全透明,3秒以后变回来。这个动画直到加入层以后才播放。

CABasicAnimation *theAnimation;

theAnimation=[CABasicAnimation animationWithKeyPath:@"opacity"];
theAnimation.duration=3.0;
theAnimation.repeatCount=2;
theAnimation.autoreverses=YES;
theAnimation.fromValue=[NSNumber numberWithFloat:1.0];
theAnimation.toValue=[NSNumber numberWithFloat:0.0];
[theLayer addAnimation:theAnimation forKey:@"animateOpacity"];


开始和结束显式动画:

通过发送一个addAnimation:forKey:消息到目的层来开始显式动画,传递动画和标识作为参数。

一旦加入目标层显示动画立即运行直到动画完成或者被层移除。传递的标识也可以用来停止动画通过调用

removeAnimationForKey:方法。通过发送给层一个removeAllAnimation消息能停止所有的动画。

CALayer和CAEmitterLayer
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: