UIView动态实现的效果有以下几种:

1.动态改变frame

2.动态改变color

3.动态改变alpha

4.动态改变bounds

首先,我们先看几种BasicView动画

 #pragma mark - 改变frame
- (IBAction)changeFrame:(UIButton *)sender { // UIView动画有开始,有结束,以beginAnimation开始,以commitAnimation结束
// 第一步:开始UIView动画
[UIView beginAnimations:@"move" context:nil]; // 第二步:设置动画时长
[UIView setAnimationDuration:]; // 第三步:设置UIView动画的回调代理
[UIView setAnimationDelegate:self]; // 第四步:设置相关的对象的frame
_textView.frame = CGRectMake(, , , ); // 第五步:结束动画
[UIView commitAnimations];
}
 #pragma mark - 改变color
- (IBAction)changeColor:(UIButton *)sender { [UIView beginAnimations:@"color" context:nil];
[UIView setAnimationDuration:];
[UIView setAnimationDelegate:self];
_textView.backgroundColor = [UIColor blueColor];
[UIView commitAnimations];
}
 #pragma mark - 改变alpha
- (IBAction)changeAlpha:(UIButton *)sender { [UIView beginAnimations:@"alpha" context:nil];
[UIView setAnimationDuration:];
[UIView setAnimationDelegate:self];
_textView.alpha = 0.3;
[UIView commitAnimations];
}
 #pragma mark - 翻转
- (IBAction)rotationAction:(UIButton *)sender { // 第一步:开始动画
[UIView beginAnimations:@"rotation" context:nil]; // 第二步:设置时长
[UIView setAnimationDuration:]; // 第三步:设置淡入效果
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; // 第四步:设置代理
[UIView setAnimationDelegate:self]; // 第五步:设置翻转方向
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:_textView cache:YES]; // 第六步:结束动画
[UIView commitAnimations];
}
 #pragma mark - 旋转
- (IBAction)transtromAction:(UIButton *)sender { // 第一步:开始动画
[UIView beginAnimations:@"transform" context:nil]; // 第二步:设置时长
[UIView setAnimationDuration:]; // 第三步:要进行旋转,所以要设置角度
CGAffineTransform transform = CGAffineTransformMakeRotation( * M_PI); // 第四步:设置旋转角度的对象
[_textView setTransform:transform]; // 第五步:设置代理
[UIView setAnimationDelegate:self]; // 第六步:结束动画
[UIView commitAnimations];
}

然后我们来说几种Block动画:

1.简单动画

 #pragma mark - 简单动画
- (IBAction)easyAnimation:(UIButton *)sender { // 参数1:设置动画时长
// 参数2:动画要显示的效果
// 参数3:动画完成时进行的事情
__weak typeof(self)weakSelf = self;
[UIView animateWithDuration:2.0f animations:^{
weakSelf.testImgView.center = self.view.center;
} completion:^(BOOL finished) {
NSLog(@"动画完成");
}];
}

2.复杂动画

 #pragma mark - 复杂动画
- (IBAction)complexBlockAnimation:(UIButton *)sender { // 参数1:时长
// 参数2:动画的延迟时间
// 参数3:动画的枚举值
// 参数4:要实现的动画效果
// 参数5:动画完成的时候要干的事情
__weak typeof(self)weakSelf = self;
[UIView animateWithDuration:3.0f delay:1.0f options:UIViewAnimationOptionTransitionFlipFromLeft animations:^{
weakSelf.testImgView.frame = CGRectMake(, , , );
} completion:^(BOOL finished) {
NSLog(@"动画完成");
}];
}

3.关键帧动画

 #pragma mark - 关键帧动画
- (IBAction)keyFrameAnimation:(UIButton *)sender { // 参数1:时长
// 参数2:动画的延迟时间
// 参数3:枚举值
// 参数4:开始动画
__weak typeof(self)weakSelf = self;
[UIView animateKeyframesWithDuration:3.0f delay:1.0f options:UIViewKeyframeAnimationOptionCalculationModeLinear animations:^{ // 在这个里面需要加一个方法,即创建block的关键帧
// 参数1:帧动画的开始时间
// 参数2:帧动画的持续时间
// 参数3:实现的效果
[UIView addKeyframeWithRelativeStartTime: relativeDuration:0.5 animations:^{
// 实现的效果
weakSelf.testImgView.frame = CGRectMake(, , , );
}];
} completion:^(BOOL finished) {
NSLog(@"哈哈哈");
}];
}

4.Spring动画

 // 参数1:动画时长
// 参数2:延迟
// 参数3:类似弹簧的效果值,(0-1)
// 参数4:初始化spring的一个速度
// 参数5:spring动画的枚举值
// 参数6:开始动画
// 参数7:动画完成
__weak typeof(self)weakSelf = self;
[UIView animateWithDuration:3.0f delay:0.5f usingSpringWithDamping:1.0 initialSpringVelocity: options:UIViewAnimationOptionOverrideInheritedDuration animations:^{ weakSelf.imgView.frame = CGRectMake(, , , );
} completion:^(BOOL finished) {
NSLog(@"fuck");
}];

UIView简单动画的更多相关文章

  1. iOS开发UI篇—核心动画(UIView封装动画)

    iOS开发UI篇—核心动画(UIView封装动画) 一.UIView动画(首尾) 1.简单说明 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画 ...

  2. IOS 简单动画 首尾式动画

    首尾式动画 首尾式动画即通过实现控件由初始状态到结束状态的过程.(主要表现在控件的Frame 透明度 ) // // ViewController.m // CX 简单动画 // // Created ...

  3. ios uiview封装动画(摘录)

    iOS开发UI篇—核心动画(UIView封装动画) 一.UIView动画(首尾) 1.简单说明 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画 ...

  4. IOS开发-UIView之动画效果的实现方法(合集)

    http://www.cnblogs.com/GarveyCalvin/p/4193963.html 前言:在开发APP中,我们会经常使用到动画效果.使用动画可以让我们的APP更酷更炫,最重要的是优化 ...

  5. 17-UIKit(UIView的动画)

    2. UIView的动画 UIView类本身具有动画的功能 2.1 概念 由UI对底层Core Animation框架的封装 可以轻松简单的实现动画效果 2.2 两种使用方式 1> Block ...

  6. 如何停止和扭转UIView的动画

    本文转载至  http://codego.net/576089/ 我有它收缩时碰到切换按钮UIView的动画跳和它扩展恢复到原来的大小当再次接触到按钮.密封式前大灯一切都工作得很好.问题是,动画师注意 ...

  7. UIView Animation 动画学习总结

    目录 一.前言 二.UIView Animation 2.1 简单动画 2.2 关键帧动画 2.3 View 的转换 三.CALayer Animation 3.1 基本动画(CABasicAnima ...

  8. 原生JS封装简单动画效果

    原生JS封装简单动画效果 一致使用各种插件,有时候对原生JS陌生了起来,所以决定封装一个简单动画效果,熟悉JS原生代码 function animate(obj, target,num){ if(ob ...

  9. jquery添加光棒效果的各种方式以及简单动画复杂动画

    过滤器.绑定事件.动画   一.基本过滤器 语法 描述 返回值 :first 选取第一个元素 单个元素 :last 选取最后一个元素 单个元素 :not(selector) 选取去除所有与给定选择器匹 ...

随机推荐

  1. androidStudio 改包名

    很多时候,我们需要将app换套皮肤,然后当作一个新的app来打包.如果只是更换了资源这样的安装包会将之前安装好的app替换掉. 1:不推荐的做法:直接在AndroidStudio里修改build.gr ...

  2. Visual Studio .NET项目转换器(ProjectConverter)修改

    Visual Studio .NET 项目转换器非常类似于ASP.NET版本转换器,区别在于它用于转换 Visual Studio 项目文件的版本.尽管在 .NET 框架的 1.0 版和 1.1 版之 ...

  3. Xcode 报错信息

    1.CUICatalog: Invalid asset name supplied: 原因是: 使用的方法[UIImage imageNamed:@""]; @"&quo ...

  4. jQuery--捕获键盘敲击

    功能 当页面加载完成​后,用户键盘按下某个键后,jQuery能够捕获到一个数字,从而执行一系列动作. 格式 1 2 3 4 5 6 7 8 9 10 11 12 $(function(){     $ ...

  5. (5)分布式下的爬虫Scrapy应该如何做-windows下的redis的安装与配置

    软件版本: redis-2.4.6-setup-64-bit.exe — Redis 2.4.6 Windows Setup (64-bit) 系统: win7 64bit 本篇的内容是为了给分布式下 ...

  6. poi中getPhysicalNumberOfRows()和getLastRowNum()区别

    getPhysicalNumberOfRows()获取的是物理行数,也就是不包括那些空行(隔行)的情况. getLastRowNum()获取的是最后一行的编号(编号从0开始). 通过getPhysic ...

  7. 三分 --- CSU 1548: Design road

    Design road Problem's Link:   http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1548 Mean: 目的:从(0,0)到 ...

  8. AEAI CRM客户关系管理升级说明

    本次发版的AEAI CRM_v1.5.1版本为AEAI CRM_v1.5.0版本的升级版本,该产品现已开源并上传至开源社区http://www.oschina.net/p/aeaicrm. 1 升级说 ...

  9. [CLR via C#]18. Attribute

    attribute可以说是Microsoft .NET Framework提出的最具创意的技术之一了.利用attribute,可以声明性的为自己的代码构造添加注解,从而实现一些特殊的功能.attrib ...

  10. Python基础:序列(列表、元组)

    一.概述 列表(list)是由一个个 Python对象 组成的序列.其中,Python对象 可以是任何类型的对象,包括 Python标准类型(数值.字符串.列表.元组和字典)以及 用户自定义类型(类) ...