用Animation实现iphone动画效果

  1、写了一个小Demo,实现上下移动的效果图:


 


  主要代码如下:

  - (IBAction)upChange:(id)sender {

  if (typeView == down) {

  [self.downBtn setHidden:NO];

  [self.upBtn setHidden:NO];

  [UIView animateWithDuration:0.5 animations:^{

  self.upView.center = CGPointMake(self.upView.center.x, 0);

  self.downView.center = CGPointMake(self.downView.center.x, (self.upView.frame.size.height+self.downView.frame.size.height)/2);

  }];

  typeView = middle;

  }else if(typeView == middle){

  [self.downBtn setHidden:NO];

  [self.upBtn setHidden:YES];

  [UIView animateWithDuration:0.5 animations:^{

  self.upView.center = CGPointMake(self.upView.center.x, -(self.upView.frame.size.height/2));

  self.downView.center = CGPointMake(self.downView.center.x, self.downView.frame.size.height/2);

  }];

  typeView = up;

  }

  }

  - (IBAction)downChange:(id)sender {

  if (typeView == middle) {

  [self.downBtn setHidden:YES];

  [self.upBtn setHidden:NO];

  [UIView animateWithDuration:0.5 animations:^{

  self.upView.center = CGPointMake(self.upView.center.x, self.upView.frame.size.height/2);

  self.downView.center = CGPointMake(self.downView.center.x, self.upView.frame.size.height+self.downView.frame.size.height/2);

  }];

  typeView = down;

  }else if(typeView == up)

  {

  [self.downBtn setHidden:NO];

  [self.upBtn setHidden:NO];

  [UIView animateWithDuration:0.5 animations:^{

  self.upView.center = CGPointMake(self.upView.center.x, 0);

  self.downView.center = CGPointMake(self.downView.center.x, (self.upView.frame.size.height+self.downView.frame.size.height)/2);

  }];

  typeView = middle;

  }

  }

  这是主要的代码,另外还有一些需要注意的一些小细,如你的两个view的大小,需要计算出精确位置。

  下面开始学习[UIView animateWithDuration]方法的使用:

  函数原型:

  + (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_4_0); // delay = 0.0, options = 0, completion = NULL

  duration:动画持续时间

  animations:该代码儿块中是所有view要完成的动画的所有属性的定义;

  还有另外两个函数:

  + (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_4_0);

  + (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion__OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_4_0);// delay = 0.0, options = 0

  options:是动画执行的选项

  completion:是动画完成以后所要执行的代码块儿。

时间: 2024-11-30 02:03:21

用Animation实现iphone动画效果的相关文章

Android ListView Animation 4种动画效果(贴上了GIF图)

Animation是android的动画效果的组件,可以实现绚丽的翻页.ListView和GridView的展示.   这blog简单介绍一下4种动画效果方式: 1.  AlphaAnimation               控制渐变透明的动画效果    如图: 2.  ScaleAnimation               控制尺寸伸缩的动画效果 如图:   3.  TranslateAnimation        控制画面平移的动画效果  如图:   4.  RotateAnimati

Android中使用Animation实现控件的动画效果以及Interpolator和AnimationListener的使用

本文转载IT宅:http://www.itzhai.com/android-animation-used-to-achieve-control-of-animation-effects-and-use-of-interpolator-and-animationlistener.html Animation的4个基本动画效果 What is Animation? public abstract classAnimation extends Object implements Cloneable A

service-悬浮窗实现自定Animation动画效果

问题描述 悬浮窗实现自定Animation动画效果 我现在实现这个悬浮窗口是在service里面addview时候加进去的,默认宽高为0X0,点击一个按钮,则变成1000X1000,现在想加个点击之后窗口慢慢划出来的效果,怎么就爱 解决方案 初始设置成不可见, 点击button时. 设置为可见,并对View设置动画就可以了. 动画使用缩放动画 //初始化 Animation scaleAnimation = new ScaleAnimation(0.1f, 1.0f,0.1f,1.0f); //

Android动画开发——Animation动画效果

动画类型 Android的animation由四种类型组成 XML中  alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面转移旋转动画效果 JavaCode中  AlphaAnimation 渐变透明度动画效果 ScaleAnimation 渐变尺寸伸缩动画效果 TranslateAnimation 画面转换位置移动动画效果 RotateAnimation 画面转移旋转动画效果 Android动画模式 Animati

Core Animation一些Demo总结 (动态切换图片、大转盘、图片折叠、进度条等动画效果)_Android

前一篇总结了Core Animation的一些基础知识,这一篇主要是Core Animation 的一些应用,涉及到CAShapeLayer.CAReplicatorLayer等图层的知识. 先看效果图: 1.切换图片: 2.彩票转盘 3.图片折叠 4.进度条旋转 5.粒子效果 一.切换图片 看起来很复杂的动画,通过少量的计算和编码就可以简单的实现.要做到这一步,必须是需要研究iOS开发中的Core Animation和Core Graphics框架的.日常工作中,对于很多东西不求甚解,只是拿过

Android xml实现animation的4种动画效果实例代码_Android

animation有四种动画类型:分别为alpha(透明的渐变).rotate(旋转).scale(尺寸伸缩).translate(移动),二实现的分发有两种,一种是javaCode,另外一种是XML,而我今天要说的是XML实现的方法,个人感觉javaCode的实现方法比xml要简单,所以有需要的可以自己去找找资料看看. 先给大家展示下效果图,如果大家感觉还不错,请继续往下阅读. 下面是我的四个xml文件,分别代表这四种动画类型. alpha.xml COde: <?xml version=&quo

Android Animation实战之一个APP的ListView的动画效果_Android

熟悉了基础动画的实现后,便可以试着去实现常见APP中出现过的那些精美的动画.今天我主要给大家引入一个APP的ListView的动画效果: 当展示ListView时,Listview的每一个列表项都按照规定的动画显示出来. 说起来比较抽象,先给大家看一个动画效果,这是APP窝牛装修的ListView显示动画:     有木有觉得很酷炫?有木有啊!? 一.Layout Animation     所谓的布局动画,其实就是为ViewGroup添加显示动画效果,主要用过LayoutAnimationCo

CSS3中Animation为同一个元素添加多个动画效果

CSS3 Animation 并未提供 给一个元素同时添加多个动画效果的方法,就是说一个元素,只能给它定义一个动画效果,不能同时定义. 需求说明 比如说,我想实现一个这样的动画效果: 一颗星星从上往下滑落,当滑落到指定位置时开始闪烁 这里就用到了两个动画效果: 1. 从上往下滑落 (单次动画) 2. 闪烁 (循环动画) 因为 CSS3 Animation 是不能给星星这个元素同时定义这两个动画效果的,所以我们就只能从其它方向入手了. 思考解决方案 我是这样想的,既然不能同时定义两个动画,那能不

Android Animation实战之一个APP的ListView的动画效果

熟悉了基础动画的实现后,便可以试着去实现常见APP中出现过的那些精美的动画.今天我主要给大家引入一个APP的ListView的动画效果: 当展示ListView时,Listview的每一个列表项都按照规定的动画显示出来. 说起来比较抽象,先给大家看一个动画效果,这是APP窝牛装修的ListView显示动画: 有木有觉得很酷炫?有木有啊!? 一.Layout Animation     所谓的布局动画,其实就是为ViewGroup添加显示动画效果,主要用过LayoutAnimationContro