#import "ViewController.h"

@interface ViewController ()
{
    UIButton *btn;
}
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    btn=[UIButton buttonWithType:UIButtonTypeSystem];
    btn.frame=CGRectMake(30, 30, 50, 50);
    btn.backgroundColor=[UIColor redColor];
    [btn setTitle:@"按钮" forState:UIControlStateNormal];
    [btn addTarget:self action:@selector(btnclick:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btn];

}
//UIViewAnimationWithBlocks
-(void)btnclick:(id)sender
{
   // 此方法参数1:动画时长 参数2:修改的View的属性
    [UIView animateWithDuration:2 animations:^{
        btn.backgroundColor=[UIColor blackColor];
    }];

   //此方法参数1:动画时长 参数2:修改的View的属性 参数3:动画完成的回调
   [UIView animateWithDuration:3 animations:^{
       btn.backgroundColor=[UIColor redColor];
   } completion:^(BOOL finished) {
       NSLog(@"completion1");
   }];
   /* UIViewAnimationOptionLayoutSubviews //提交动画的时候布局子控件,表示子控件将和父控件一同动画。

    UIViewAnimationOptionAllowUserInteraction //动画时允许用户交流,比如触摸

    UIViewAnimationOptionBeginFromCurrentState //从当前状态开始动画

    UIViewAnimationOptionRepeat //动画无限重复

    UIViewAnimationOptionAutoreverse //执行动画回路,前提是设置动画无限重复

    UIViewAnimationOptionOverrideInheritedDuration //忽略外层动画嵌套的执行时间

    UIViewAnimationOptionOverrideInheritedCurve //忽略外层动画嵌套的时间变化曲线

    UIViewAnimationOptionAllowAnimatedContent //通过改变属性和重绘实现动画效果,如果key没有提交动画将使用快照

    UIViewAnimationOptionShowHideTransitionViews //用显隐的方式替代添加移除图层的动画效果

    UIViewAnimationOptionOverrideInheritedOptions //忽略嵌套继承的选项

    //时间函数曲线相关

    UIViewAnimationOptionCurveEaseInOut //时间曲线函数,由慢到快

    UIViewAnimationOptionCurveEaseIn //时间曲线函数,由慢到特别快

    UIViewAnimationOptionCurveEaseOut //时间曲线函数,由快到慢

    UIViewAnimationOptionCurveLinear //时间曲线函数,匀速

    //转场动画相关的

    UIViewAnimationOptionTransitionNone //无转场动画

    UIViewAnimationOptionTransitionFlipFromLeft //转场从左翻转

    UIViewAnimationOptionTransitionFlipFromRight //转场从右翻转

    UIViewAnimationOptionTransitionCurlUp //上卷转场

    UIViewAnimationOptionTransitionCurlDown //下卷转场

    UIViewAnimationOptionTransitionCrossDissolve //转场交叉消失

    UIViewAnimationOptionTransitionFlipFromTop //转场从上翻转

    UIViewAnimationOptionTransitionFlipFromBottom //转场从下翻转
    */
    //参数1 动画时长 参数2 延迟时间 参数3 枚举见上面注释 参数4 改变View属性 参数5 动画完成时回调
    [UIView animateKeyframesWithDuration:2 delay:2 options:UIViewKeyframeAnimationOptionBeginFromCurrentState animations:^{
          btn.backgroundColor=[UIColor greenColor];
            CGRect frame=btn.frame;
            if (frame.origin.x<self.view.frame.size.width-20) {
                frame.origin.x+=20;
            }
            else
            {
                frame.origin.x=0;

            }
            btn.frame=frame;
    } completion:^(BOOL finished) {
        NSLog(@"completion2");
    }];
    //转场动画
    [UIView transitionFromView:self.view toView:btn duration:5 options:UIViewAnimationOptionTransitionCurlDown completion:^(BOOL finished) {
        NSLog(@"completion3");
    }];
   [UIView transitionWithView:self.view duration:5 options:UIViewAnimationOptionTransitionFlipFromBottom animations:^{
       btn.backgroundColor=[UIColor redColor];
   } completion:^(BOOL finished) {
       NSLog(@"completion4");
   }];

}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

UIView动画下的更多相关文章

  1. UIView动画效果

    做出UI界面,实现程序功能,是重中之重,但是通过动画提升使用体验,一般人应该不会拒绝吧. 那么问题又来了,怎么做? 一: 稳扎稳打: 一步一步来吧,毕竟,心急吃不了热豆腐. 1.开启一个动画 2,设置 ...

  2. 个人学习对UIView动画的总结

    我的博客之前已经开通五个月了,但是一直没有写东西.一是不敢写,二是也不知道写啥.毕竟是一个刚刚入行大半年的菜鸟,现在总想通过各种办法提高自己.之前总感觉用到一些东西,只是当时搞懂了一点,加上并没有总结 ...

  3. UIView动画学习笔记

    UIView的动画是通过修改控件的属性来达到动画的效果,如:渐变, 移动. 废话不多说,直接上代码: - (void)loadView{ [super loadView]; _leftView = [ ...

  4. iOS动画篇:UIView动画

    iOS的动画效果一直都很棒很,给人的感觉就是很炫酷很流畅,起到增强用户体验的作用.在APP开发中实现动画效果有很多种方式,对于简单的应用场景,我们可以使用UIKit提供的动画来实现. UIView动画 ...

  5. UIView动画补充

    我自己的总结: // 第一种: Duration 时间 animations:动画体 /* [UIView animateWithDuration:4 animations:^{ CGRect rec ...

  6. 快速上手UIView动画

    UIView动画有两种使用方法 UIView [begin commit]模式 //动画开始标记 [UIView beginAnimations:@"changeframe" co ...

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

    我们看到很多App带有绚丽狂拽的特效,别出心裁的控件设计,很大程度上提高了用户体验,在增加了实用性的同时,也赋予了app无限的生命力.这些华丽的效果很多都是基于iOS的核心动画原理实现的,本文介绍一些 ...

  8. 转一篇简洁的UIView动画编程方法

    iOS  中的 UIView 动画编程其实还是很简单的,像 CSS3 一样,在给定的时间内完成状态连续性的变化呈现.比如背景色,Frame 大小,位移.翻转,特明度等. 以前我使用的编程方式都是用下面 ...

  9. UIView动画

    UIView动画 一.commitAnimations方式使用UIView动画 1.commitAnimations方式使用UIView动画 [UIView beginAnimations:@&quo ...

随机推荐

  1. Android-Version Compatibility Issues (Gradle 2.14.1 requires Android Gradle plugin 2.1.3 (or newer)) but project is using

      当AndroidStudio加载工程Project的时候,出现以上错误❌,千万不要点击,否则就是更多其他的错误:   解决方案: 1.认真翻译错误: 2.分析问题发生的原因,然后看到了 ..... ...

  2. QuartzNet使用

    quartz.config # You can configure your scheduler in either <quartz> configuration section # or ...

  3. DOM扩展:DOM API的进一步增强[总结篇-下]

    本文承接<DOM扩展:DOM API的进一步增强[总结篇-上]>,继续总结DOM扩展相关的功能和API. 3.6 插入标记 DOM1级中的接口已经提供了向文档中插入内容的接口,但是在给文档 ...

  4. Spark踩坑——java.lang.AbstractMethodError

    今天新开发的Structured streaming部署到集群时,总是报这个错: SLF4J: Class path contains multiple SLF4J bindings. SLF4J: ...

  5. C#使用七牛云存储上传下载文件、自定义回调

    项目需要将音视频文件上传服务器,考虑并发要求高,通过七牛来实现. 做了一个简易的压力测试,同时上传多个文件,七牛自己应该有队列处理并发请求,我无论同时提交多少个文件,七牛是批量一个个排队处理了. 一个 ...

  6. ASP.NETCore学习记录(二) —— ASP.NET Core 中间件

    ASP.NET Core 中间件 目录: 什么是中间件 ? IApplicationBuilder 使用 IApplicationBuilder 创建中间件 Run.Map 与 Use 方法 实战中间 ...

  7. 10-04 Java 权限修饰符,类及其组成常见的修饰符

    四种权限修饰符的测试 /* 权限修饰符: 本类 同一个包下(子类和无关类) 不同包下(子类) 不同包下(无关类) private Y 默认 Y Y protected Y Y Y public Y Y ...

  8. Windows下调试hadoop

    1.   本地模式 本地模式下调试hadoop:下载winutils.exe和hadoop.dll hadoop.lib等windows的hadoop依赖文件放在D:\proc\hadoop\bin目 ...

  9. Windows server2012 IIs 8 自定义日志记录

    问题: 通过CDN加速的网站,记录日志时无法追踪源IP,日志的IP都为CDN节点ip. 分析: 1.在解析记录header时,CDN实际会把源IP以其它header的形式回传,如网宿为[Cdn-Src ...

  10. JS 中 if / if...else...替换方式

    说说烂大街的if/if...else...,程序中用得最多的流程判断语句. 对着曾经满屏的if/if...else...,心想能不能搞点事情,折腾点浪花浪里呀浪. 对顶着"这个需求很简单,怎 ...