详解iPhone中UIView动画各种表现方式 参考文档 (上)

iPhone应用之UIView动画实现效果是本文要介绍的内容,主要是来介绍UIView动画的各种表现方式,我们先来看详细内容。

返回一个布尔值表示动画是否结束。

+ (BOOL)areAnimationsEnabled 

返回值

如果动画结束返回YES,否则NO。

beginAnimations:context: 

开始一个动画块

+ (void)beginAnimations:(NSString *)animationID context:(void *)context 

参数

animationID 

动画块内部应用程序标识用来传递给动画代理消息-这个选择器运用setAnimationWillStartSelector:和setAnimationDidStopSelector: 方法来设置。

context

附加的应用程序信息用来传递给动画代理消息-这个选择器使用setAnimationWillStartSelector: 和setAnimationDidStopSelector: 方法。

讨论

这个值改变是因为设置了一些需要在动画块中产生动画的属性。动画块可以被嵌套。如果在没有在动画块中调用那么setAnimation类方法将什么都不做。使用 beginAnimations:context:来开始一个动画块并用commitAnimations类方法来结束一个动画块。

commitAnimations

结束一个动画块并开始当他在动画块外时。

+ (void)commitAnimations 

讨论

如果当前的动画块是最外层的动画块,当应用程序返回到循环运行时开始动画块。动画在一个独立的线程中所有应用程序不会中断。使用这个方法,多个动画可以被实现。查看setAnimationBeginsFromCurrentState:来了解如果开始一个动画当另外一个动画在播放的时候。

layerClass

返回类用来创建这一个本类的layer实例对象。

+ (Class)layerClass 

返回值

一个用来创建视图layer的类

讨论

重写子类来指定一个自定义类用来显示。当在创建视图layer时候调用。默认的值是CALayer类对象。

setAnimationBeginsFromCurrentState
:
设置动画从当前状态开始播放。

+ (void)setAnimationBeginsFromCurrentState:(BOOL)fromCurrentState 

参数

fromCurrentState

YES如果动画需要从他们当前状态开始播放。否则为NO。

讨论

如果设置为YES那么当动画在运行过程中,当前视图的位置将会作为新的动画的开始状态。如果设置为NO,当前动画结束前新动画将使用视图最後状态的位置作为开始状态。这个方法将不会做任何事情如果动画没有运行或者没有在动画块外调用。使用beginAnimations:context:类方法来开始并用 commitAnimations类方法来结束动画块。默认值是NO。

setAnimationCurve
:
设置动画块中的动画属性变化的曲线。

+ (void)setAnimationCurve:(UIViewAnimationCurve)curve 

讨论

动画曲线是动画运行过程中相对的速度。如果在动画块外调用这个方法将会无效。使用 beginAnimations:context:类方法来开始动画块并用commitAnimations来结束动画块。默认动画曲线的值是 UIViewAnimationCurveEaseInOut。

setAnimationDelay:

在动画块中设置动画的延迟属性(以秒为单位)

+ (void)setAnimationDelay:(NSTimeInterval)delay 

讨论

这个方法在动画块外调用无效。使用beginAnimations:context: 类方法开始一个动画块并用commitAnimations类方法结束动画块。默认的动画延迟是0.0秒。

setAnimationDelegate:

设置动画消息的代理。

+ (void)setAnimationDelegate:(id)delegate 

参数

delegate

你可以用setAnimationWillStartSelector:和setAnimationDidStopSelector: 方法来设置接收代理消息的对象。

讨论

这个方法在动画块外没有任何效果。使用beginAnimations:context:类方法开始一个动画块并用commitAnimations类方法结束一个动画块。默认值是nil

setAnimationDidStopSelector:

设置消息给动画代理当动画停止的时候。

+ (void)setAnimationDidStopSelector:(SEL)selector 

参数

selector

当动画结束的时候发送给动画代理。默认值是NULL。这个选择者须有下面方法的签名:animationFinished:(NSString *)animationID finished:(BOOL)finished context:(void *)context。

animationID

一个应用程序提供的标识符。和传给beginAnimations:context: 相同的参数。这个参数可以为空。

finished

如果动画在停止前完成那返回YES;否则就是NO。

context

一个可选的应用程序内容提供者。和beginAnimations:context: 方法相同的参数。可以为空。

讨论

这个方法在动画块外没有任何效果。使用beginAnimations:context: 类方法来开始一个动画块并用commitAnimations类方法结束。默认值是NULL。

相关推荐