在ios的开发过程中,经常需要对视图控件进行变化,如大小,颜色,旋转等,这是如果直接将变化结果呈现出来,就显得不够友好,所以我们通常会使用动画,让用户能够看到变化的过程。

  使用动画通常有两种方式,一种是在代码块之间进行,另外一种是使用block块。

  接下来先介绍使用代码块

 

  UILabel *label.frame = CGRectMake(, , , );
 //使用代码块只需要将要进行变化的控件,在变化时的操作放在代码块中
               //动画头部
              [UIView beginAnimations:Nil context:Nil];
              //动画完成时间
             [UIView setAnimationDuration:];
         //设置渐变曲线
     [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
     //设置动画类型
     /*
     第一个参数: 要实现的动画效果
      动画效果有如下类型:
      UIViewAnimationTransitionNone, 无动画效果
      UIViewAnimationTransitionFlipFromLeft, 左翻转
      UIViewAnimationTransitionFlipFromRight, 右翻转
      UIViewAnimationTransitionCurlUp, 向上翻页
      UIViewAnimationTransitionCurlDown, 向下翻页
     第二个参数: 要实现动画的视图
     第三个参数: 是否对动画进行缓存
     */
 [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:label cache:YES];
              //此处对label改变frame

             //动画尾部,提交、执行动画
             [UIView commitAnimations];
             

  在使用block来进行设置动画,有两种方法,第一种是通过调用[UIView animateWithDuration:NSTimeInterval animations:^(void)animations]方法

  

 //将需要进行动画操作的代码放入到块当中
 //其中第一个参数为动画时间
 [UIView animateWithDuration: animations:^{
 //            label.frame = CGRectMake(label.frame.origin.x, label.frame.origin.y, width, HEIGHT);
 //        }];

  第二种方法是调用

[UIView animateWithDuration:(NSTimeInterval) animations:^(void)animations completion:^(BOOL finished)completion]方法,此方法为上一个方法的加强版,在执行完动画操作后,会执行最后一个块

     UIView *view = [[UIView alloc] init];
     view.frame = CGRectMake(, , , );
     view.backgroundColor = [UIColor greenColor];
     //使用block实现动画效果
 //    [UIView animateWithDuration:5 animations:^{
 //        view.frame = CGRectMake(220, 330, 40, 40);
 //        view.backgroundColor = [UIColor redColor];
 //    }];
     //一个动画块执行完后,继续执行最后一个块
     [UIView animateWithDuration: animations:^{
         view.frame = CGRectMake(, , , );
         view.backgroundColor = [UIColor redColor];
     } completion:^(BOOL finished) {
         [UIView animateWithDuration: animations:^{
             view.frame = CGRectMake(, , , );
             view.backgroundColor = [UIColor yellowColor];
             view.alpha = 0.1;
         }];
     }];

我的iOS学习之路(四):动画设置的更多相关文章

  1. ios学习之路四(新建Sprite Kit 项目的时候出现apple LLVM 5.0 error)

    在新建sprite kit 项目的时候出现"apple LLVM 5.0 error" 解决方法 在网上搜索,stackoverflow 上是这么说的点击打开链接.按照他的我也没解 ...

  2. iOS学习笔记-自定义过渡动画

    代码地址如下:http://www.demodashi.com/demo/11678.html 这篇笔记翻译自raywenderlick网站的过渡动画的一篇文章,原文用的swift,由于考虑到swif ...

  3. IOS开发---菜鸟学习之路--(二十二)-近期感想以及我的IOS学习之路

    在不知不觉当中已经写了21篇内容 其实一开始是没有想些什么东西的 只是买了Air后 感觉用着挺舒服的,每天可以躺在床上,就一台笔记本,不用网线,不用电源,不用鼠标,不用键盘,干干脆脆的就一台笔记本. ...

  4. 浅谈iOS学习之路(转)

    转眼学习iOS已经快两年的时间了,这个路上有挫折也有喜悦,一步步走过来发现这个过程是我这一辈子的财富,我以前的老大总是对我说,年轻就是最大的资本(本人91年),现在才算是慢慢的体会到,反观自己走过的这 ...

  5. iOS学习笔记09-核心动画CoreAnimation

    http://www.cnblogs.com/liutingIOS/p/5368536.html 一.CALayer CALayer包含在QuartzCore框架中,具有跨平台性,在iOS中使用Cor ...

  6. 浅谈iOS学习之路

    转眼学习iOS已经快两年的时间了,这个路上有挫折也有喜悦,一步步走过来发现这个过程是我这一辈子的财富,我以前的老大总是对我说,年轻就是最大的资本(本人91年),现在才算是慢慢的体会到,反观自己走过的这 ...

  7. Redis——学习之路四(初识主从配置)

    首先我们配置一台master服务器,两台slave服务器.master服务器配置就是默认配置 端口为6379,添加就一个密码CeshiPassword,然后启动master服务器. 两台slave服务 ...

  8. IOS学习之路(二十五)UIView动画,弹出后移动然后消失

    首先在viewdidload中添加UIlable并且把其设为隐藏 然后在点击按钮后,让其弹出移动后消失 //点击按钮后: #pragma mark 点击关注按钮 - (IBAction)guanzhu ...

  9. IOS学习之路十四(用TableView做的新闻客户端展示页面)

    最近做的也个项目,要做一个IOS的新闻展示view(有图有文字,不用UIwebview,因为数据是用webservice解析的到的json数据),自己一直没有头绪,可后来听一个学长说可以用listvi ...

随机推荐

  1. 如何使Label带有链接??此法感觉有点取巧!!!

    关键代码 /**************************************************************第一行***************************** ...

  2. qutIm编译

    官网:http://www.qutim.org/ 原文地址:http://wiki.qutim.org/en/building_from_git 依赖: Qt4-dev 4.7:http://qt-p ...

  3. 梯度下降算法的一点认识(Ng第一课)

    昨天开始看Ng教授的机器学习课,发现果然是不错的课程,一口气看到第二课. 第一课 没有什么新知识,就是机器学习的概况吧. 第二课 出现了一些听不太懂的概念.其实这堂课主要就讲了一个算法,梯度下降算法. ...

  4. [置顶] 阿里IOS面试题之多线程选用NSOperation or GCD

    今天早上接到了阿里从杭州打过来的电话面试.虽然近期面试了一些大中型的互联网企业,但是跟素有“IT界的黄浦军校”的阿里面试官接触还是不免紧张. 面试持续了三四十分钟吧,大部分问题都是简历上的项目经验而来 ...

  5. Python的中文编码转换问题

    与server进行数据交换时,尤其是数据中含有中文时,要注意中文的编码问题. 要选择server接受的编码方式,否则会造成显示乱码. 经验: 实验室server的数据库,中文用UTF-8编码,但我提交 ...

  6. 对XXX(数字)安全卫士实在是忍无可忍了,为什么一定要像日本鬼子强奸妇女一样强奸我们这些弱小者

    一直一来对XXX(数字)安全卫士非常痛恨,无耻,恶心,没有底线,还有对待我们这些弱小者,就像当年日本鬼子强奸妇女一样,血粼粼的虐杀我们这些弱小者,无法反抗,又必须接受. 你强制杀掉别人的ADB 就算了 ...

  7. winfrom播放动态图片

    winfrom是不能直接加载的动态图片的.只能够自己写方法实现. 具体代码如下: using System; using System.Collections.Generic; using Syste ...

  8. java中log4j的使用体验

    log4j相信大部分java开发者都已经很熟悉了,在此记录下自己的使用过程. 一.文件准备: 1.log4j.jar(我这里使用的版本是log4j-1.2.17.jar,在附件中提供下载) 2.log ...

  9. ##DAY11 UITableView编辑

    ##DAY11 UITableView编辑 每一个视图控制器都有一个编辑按钮,因为项目中编辑的应用场景非常多,所以系统预留了一个编辑按钮供我们使用 self.navigationItem.leftBa ...

  10. 《JavaScript+DOM编程艺术》的摘要(二)---DOM中的几个方法

    //DOM: //对象是一种独立的数据集合,与某个特定对象相关联的变量被称为这个对象的属性,通过某个特定对象可以为之调用的函数被称为这个对象的方法 // //4个非常实用的DOM方法: //检索特定元 ...