UIKit - UIView动画扩展块(UIViewAnimationWithBlocks)

UIView类函数原型

@interface UIView(UIViewAnimationWithBlocks)

+ (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion NS_AVAILABLE_IOS(4_0);

+ (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion NS_AVAILABLE_IOS(4_0); // delay = 0.0, options = 0

+ (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations NS_AVAILABLE_IOS(4_0); // delay = 0.0, options = 0, completion = NULL

+ (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay usingSpringWithDamping:(CGFloat)dampingRatio initialSpringVelocity:(CGFloat)velocity options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion NS_AVAILABLE_IOS(7_0);

+ (void)transitionWithView:(UIView *)view duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion NS_AVAILABLE_IOS(4_0);

+ (void)transitionFromView:(UIView *)fromView toView:(UIView *)toView duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options completion:(void (^)(BOOL finished))completion NS_AVAILABLE_IOS(4_0);

+ (void)performSystemAnimation:(UISystemAnimation)animation onViews:(NSArray *)views options:(UIViewAnimationOptions)options animations:(void (^)(void))parallelAnimations completion:(void (^)(BOOL finished))completion NS_AVAILABLE_IOS(7_0);

@end

UIView Animation 的参数详解

##

//设置动画持续的时间
[UIView setAnimationDuration:0.2];

//设置代理//动画块的某个方法(最下方),委托到本类的实例
[UIView setAnimationDelegate:self];

//动画结束后去执行的方
[UIView setAnimationDidStopSelector:@selector(resetView)];

//设置动画的次数
[UIView setAnimationRepeatCount:99999999];

//设置动画的方式
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];

//default = 0.0延迟多少时间开始执行动画
+ (void)setAnimationDelay:(NSTimeInterval)delay; 

//default = now ([NSDate date])动画开始日期
+ (void)setAnimationStartDate:(NSDate *)startDate; 

// //default = NO. YES的话,动画(非最后一次)结束后动态复原到最开始状态
+ (void)setAnimationRepeatAutoreverses:(BOOL)repeatAutoreverses;

//default = NO. YES,停止之前的动画,从现在这里开始新动画
+ (void)setAnimationBeginsFromCurrentState:(BOOL)fromCurrentState; 

//添加动画到view上,cache是YES的时候比较高效,但是动画过程中不能更新界面上的内容,NO时每一帧都重新画,可以实时更新
+ (void)setAnimationTransition:(UIViewAnimationTransition)transition forView:(UIView *)view cache:(BOOL)cache; 

//是否忽略一些动画设置
+ (void)setAnimationsEnabled:(BOOL)enabled; 

UIViewAnimationWithBlocks动画扩展详解

函数原型

+ (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations

例如一个视图淡出屏幕,另外一个视图出现的代码:

[UIView animateWithDuration:1.0 animations:^{
        firstView.alpha = 0.0;
        secondView.alpha = 1.0;
}];

实现连续的动画,只需在completion代码块中添加动画。

实例代码:

[UIView animateWithDuration:2.0
                 animations:^{
                     oldImageView.alpha = 0.0;
                     newImageView.alpha = 1.0;
                     //imageView.center = CGPointMake(500.0, 512.0);
                 }
                 completion:^(BOOL finished){
                     [UIView animateWithDuration:4.0
                                      animations:^{
                                          newImageView.center = CGPointMake(500.0, 512.0);
                                      }];
                 }];

UIView视图的动画功能,可以使在更新或切换视图时有放缓节奏、产生流畅的动画效果,进而改善用户体验。UIView可以产生动画效果的变化包括:

可以设置动画属性的有:

 - frame            //大小变化:改变视图框架(frame)和边界。
 - bounds           //拉伸变化:改变视图内容的延展区域。
 - center           //居中显示
 - transform        //旋转:即任何应用到视图上的仿射变换(transform)
 - alpha            //改变透明度:改变视图的alpha值。
 - backgroundColor  //改变背景颜色
 - contentStretch   //拉伸内容

其中:

 1. duration   //为动画持续的时间。
 2. animations //为动画效果的代码块。
 3. completion //为动画执行完毕以后执行的代码块
 4. options    //为动画执行的选项
 5. delay      //为动画开始执行前等待的时间
时间: 2024-08-01 08:38:24

UIKit - UIView动画扩展块(UIViewAnimationWithBlocks)的相关文章

iOS开发——动画编程OC篇&(六)UIView动画

UIView动画 一.UIView动画(首尾) 1.简单说明 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画支持 执行动画所需要的工作由UIView类自动完成,但仍要在希望执行动画时通知视图,为此需要将改变属性的代码放在[UIView beginAnimations:nil context:nil]和[UIView commitAnimations]之间 常见方法解析: + (void)setAnimationDelegate:(id)d

ios之UIview动画

一.UIView动画(首尾) 1.简单说明 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画支持 执行动画所需要的工作由UIView类自动完成,但仍要在希望执行动画时通知视图,为此需要将改变属性的代码放在[UIView beginAnimations:nil context:nil]和[UIView commitAnimations]之间 常见方法解析: + (void)setAnimationDelegate:(id)delegate  

iOS核心动画以及UIView动画的介绍

我们看到很多App带有绚丽狂拽的特效,别出心裁的控件设计,很大程度上提高了用户体验,在增加了实用性的同时,也赋予了app无限的生命力.这些华丽的效果很多都是基于iOS的核心动画原理实现的,本文介绍一些iOS开发中最基本的动画效果实现,掌握了基本属性,才可以绘制出更华丽的效果. 一.概念扩充  1.核心动画: Core Animation,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍. Core Animation可以用在Mac OS X和iOS平台.在iO

【iOS开发】---- UIView动画

iOS 动画UIView动画 原文:http://www.cocoachina.com/bbs/read.php?tid=110168 1.概述 UIKit直接将动画集成到UIView类中,实现简单动画的创建过程.UIView类定义了几个内在支持动画的属性声明,当这些属性发生改变时,视图为其变化过程提供内建的动画支持. 执行动画所需要的工作由UIView类自动完成,但仍要在希望执行动画时通知视图,为此需要将改变属性的代码包装到一个代码块中. 2.UIView动画具体创建方法 - (void)bu

iOS-UIView动画

今天的主题是UIView的动画. 在iOS中UIView的动画是基于CALayer动画封装. 动画就是静态的图片通过一定频率显示,给人们动画的效果. UIView动画有基于类方法的实现和基于Block方法块的实现. 一.UIView基于类方法的实现的使用 类方法列表: @interface UIView(UIViewAnimation) + (void)beginAnimations:(NSString *)animationID context:(void *)context; // addi

iOS UIView动画详解

现在的iOS开发中,有很多的动画框架可以使用,包括苹果自带的CoreAnimation框架,Facebook的Pop等等,这些的确都是程序员的利器.但是如果我们仅仅是想要实现一些比较简单的动画呢?杀鸡焉用牛刀.我们直接用UIView就可以了.今天我们就来好好聊聊UIView动画,使用Swift编写(大家可以看到我有时候用OC,有时候用Swift,现在的iOS学习的基本技能看着OC代码能写出Swift,照着Swift能写出OC,哈哈).本示例代码上传至  https://github.com/ch

转-iOS 动画总结----UIView动画

来自:http://blog.csdn.net/huifeidexin_1/article/details/7597868/ 1.概述 UIKit直接将动画集成到UIView类中,实现简单动画的创建过程.UIView类定义了几个内在支持动画的属性声明,当这些属性发生改变时,视图为其变化过程提供内建的动画支持. 执行动画所需要的工作由UIView类自动完成,但仍要在希望执行动画时通知视图,为此需要将改变属性的代码包装到一个代码块中. 2.UIView动画具体创建方法 - (void)buttonP

UIView动画效果

做出UI界面,实现程序功能,是重中之重,但是通过动画提升使用体验,一般人应该不会拒绝吧. 那么问题又来了,怎么做? 一: 稳扎稳打: 一步一步来吧,毕竟,心急吃不了热豆腐. 1.开启一个动画 2,设置该动画的各种属性:动画时长.延时执行.自动返回.动画重复次数.转场动画... 3,设置动画的UI的结束时的状态是什么,UI的最终位置等. 4,提交动画. 大功告成.具体细节如下: //===---开始动画 ---=== [UIView beginAnimations:nil context:nil]

UIView 动画

 UIView 动画 1.动画的作用 提高用户体验, 合理使用动画 2.动画的分类 a.UIView动画, 基于CALayer动画, 是对CALayer动画的封装 i.属性动画 ii.过渡动画 b.CAlayer动画 i.基本动画 ii.关键帧动画 iii.过渡动画 iv.组动画 3.UIView动画是对UIview(或子类)做的动画 a.属性动画和过渡动画都分了两种写法(动画块, block) b.属性动画和过渡动画可以同时执行 4.什么是CALayer? 用于控制渲染和展示内容 UIView