UIView的类方法在编程实现动画的过程中非常有用,比如这里所列出的animateWithDuration:animations:completion:方法。

该方法使用特定的持续时间和完成后的处理程序来对一个或多个views(视图)进行动画。

方法的原型: +(void)animateWithDuration:(NSTimeInterval)duration animations:(void(^)(void))animations completion:(void(^)(BOOL finished))completion

参数:

  duration:动画持续的总时间,以秒为单位。如果指定该参数为负值或者为0的话,那么视图的属性会改变,但是并不产生实际的动画。

  animations:是一个包含提交给views的变化的block对象。这里是你编程改变视图可动画属性的地方。这个block不带任何参数也不返回任何值,该参数不能为NULL。

  completion: 动画序列结束时被调用执行的block对象。该block没有返回值同时带有一个Boolean类型的参数用来表明在完成处理器被调用之前动画是否成功完成。如果动画的持续时间被设置成为0,那么该block对象会在下一个run loop开始的时候被调用执行。该参数可以为NULL。

  这个方法使用UIViewAnimationOptionCurveEaseInOut和UIViewAnimationOptionTransitionNone动画选项来立即执行特定的动画。例如,如果你希望渐渐消隐一个视图让你变为完全透明,然后将其从视图继承结构中移除的话,你可以使用类似于一下的代码:

  【UIView animateWithDuration:0.2

        animations:^{view.alpha = 0.0}

        completion:^(BOOL finished){[view removeFromSuperview];}】;

  在动画的过程中,针对被动画操作的视图与用户的临时交互操作被屏蔽(在iOS5.0以前,整个应用程序的用户交互操作被屏蔽)。

 

posted on 2013-09-17 15:21  noname000  阅读(752)  评论(0)    收藏  举报