UIView下使用Animation控制动画

UIView下使用Animation控制动画

动画效果是IOS界面重要的特色之一,其中CAAnimation是所有动画对象的抽象父类,作为新人,使用较多的是UIView下的动画方法(类方法)。使用UIView下的动画,有下面几个方法。

方法一:设置beginAnimations

其中memberView为需要添加的子视图的视图,mivc.view为子视图,在使用的时候,需要将这两个地方替换

[cpp] view plaincopyprint?

  1. [UIView beginAnimations:@"view flip" context:nil];
  2. [UIView setAnimationDuration:1];
  3. [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:memberView cache:YES];
  4. [memberView addSubview:mivc.view];
  5. [UIView commitAnimations];

需要注意的是,一定要使用[UIView commitAnimations];动画才会生效

通过[UIView setAnimationDuration:1]; 设置持续时间。

在IOS4.0后,我们有了新的方法,+ (void)transitionWithView:(UIView *)view duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion,依然是UIView的类方法,但使用到了Block对象,Block对象是一组指令,可以传递(像变量一样),可以把它想像成C语言的函数指针。

方法二:

其中在当前视图下,删除[blueViewController view],添加[yellowViewController view],在使用时,这两个地方要替换

[cpp] view plaincopyprint?

  1. [UIView transitionWithView:self.view
  2. duration:0.2
  3. options:UIViewAnimationOptionTransitionFlipFromLeft
  4. animations:^{
  5. [[blueViewController view] removeFromSuperview];
  6. [[self view] insertSubview:yellowViewController.view atIndex:0]; }
  7. completion:NULL
  8. ];

其中animations:后的block为对特定视图发生的改变,其不能为是NULL,completion:后block为动画执行完后,需要执行的代码块,可以为NULL。

根据手册,在整个动画过程中,用户交互对于此视图是暂时无效的(而IOS5.0前,动画过程中,用户交互对于整个应用是无效的),如果想要用户可以和视图交互,可以改变 UIViewAnimationOptionAllowUserInteraction 的值。

 

时间: 2024-12-30 12:03:08

UIView下使用Animation控制动画的相关文章

iOS开发 - Core Animation 核心动画

Core Animation Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍.也就是说,使用少量的代码就可以实现非常强大的功能. Core Animation可以用在Mac OS X和iOS平台. Core Animation的动画执行过程都是在后台操作的,不会阻塞主线程. 要注意的是,Core Animation是直接作用在CALayer上的,并非UIView. 乔帮主在2007年的WWDC大会上亲自为你演

iOS - Core Animation(核心动画)

Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍.也就是说,使用少量的代码就可以实现非常强大的功能.Core Animation可以用在Mac OS X和iOS平台.Core Animation的动画执行过程都是在后台操作的,不会阻塞主线程.要注意的是,Core Animation是直接作用在CALayer上的,并非UIView. CALayer与UIView的关系 在iOS中,你能看得见摸得着的东西基本上都是

如何控制动画

层级关系时间 在第三章“图层几何学”中,你已经了解到每个图层是如何相对在图层树中的父图层定义 它的坐标系的.动画时间和它类似,每个动画和图层在时间上都有它自己的层级概念,相对于它的父亲来测量.对图层调整时间将会影响到它本身和子图层的动画, 但不会影响到父图层.另一个相似点是所有的动画都被按照层级组合(使用CAAnimationGroup实例). 对CALayer或者 CAGroupAnimation调整duration和repeatCount/repeatDuration属性并不会影响到子动画.

(转)Android Property Animation 属性动画

版权声明:本文为博主原创文章,未经博主允许不得转载. http://blog.csdn.net/jjwwmlp456/article/details/38518657 目录(?)[-] Property Animation介绍 3.0以后新增了一些View的属性 ObjectAnimator 对象动画 ObjectAnimator的xml实现 xml定义动画 代码加载 动画xml AnimatorSet 动画集 xml定义动画集 代码加载 动画集的xml PropertyValuesHolder

[Unity3D]Unity3D游戏开发之自由视角下的角色控制

在开始今天的内容前,首先让我们来学习下Unity3D中较为重要的一部分知识,理解这些知识是我们开始学习今天内容的基础. 1.Input.GetAxis():该方法用于在Unity3D中根据坐标轴名称返回虚拟坐标系中的值,通常情况下,使用控制器和键盘输入时此值范围在-1到1之间.这段话怎么理解呢?我们来看下面这段脚本: [csharp] view plaincopyprint? using UnityEngine; using System.Collections; public class ex

Unity3D游戏开发之自由视角状态下的角色控制

在上一篇文章Unity3D游戏开发之基于Trigger的触发式动画设计一文中,博主与大家分享自己在这方面方面的一些感悟.今天呢,我们来探讨Unity3D角色控制的内容,如图是博主非常喜欢的<古剑奇谭>游戏截图,在这款游戏中就使用了博主今天要讲解的自由视角,所谓自由视角是指玩家可以按照自身坐标系向着四个不同的方向移动,当玩家按下鼠标右键时,可以绕Y轴按照一定的角度旋转摄像机,在旋转的过程中,角色将旋转相应的角度.在移动的过程中,摄像机会保持与玩家间的一定距离,然后跟随角色进行移动.好了,下面我们

WPF控制动画开始、停止、暂停和恢复

1.闲言 好久也没更新一博客了,自己有点发懒,同时确实这几个月来也有点忙.风机监测软件,项目中,有这样一个小需求:正常风机在旋转的时候,上位机软要做一个风机的图片,让它不停地旋转,一但检测到下面风机停止了,上位机软件界面的风机图片也要跟着停止,并且风机图片的旋转速度最好是能够与真实的速度成比例关系,这样软件才更有逼格一点.就是实现这样一个效果,看下图1,左边是一个状态指示,没有做动画,只是做了一个图片的切换,效果还看得过去吧. 图1 风机旋转动画 2.动画制作 在WPF做动画前,首先超码得有3个

Android ListView Animation 布局动画

AnimationSet set = new AnimationSet(false); Animation animation = new AlphaAnimation(0,1); //AlphaAnimation 控制渐变透明的动画效果 animation.setDuration(500); //动画时间毫秒数 set.addAnimation(animation); //加入动画集合 animation = new TranslateAnimation(1, 13, 10, 50); //S

利用手势控制动画的进度

最近在研究一个项目,利用手势控制动画的进度,发现简单的还可以,如果遇到了复杂的情况就比较麻烦了,ios7新出了一个特性,可以利用NavigationController的自定义转场动画,提供进度来控制. //这个方法控制转场动画的进度 - (id <UIViewControllerInteractiveTransitioning>)navigationController:(UINavigationController *)navigationController