UIView简单动画
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简单动画的更多相关文章
- iOS开发UI篇—核心动画(UIView封装动画)
iOS开发UI篇—核心动画(UIView封装动画) 一.UIView动画(首尾) 1.简单说明 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画 ...
- IOS 简单动画 首尾式动画
首尾式动画 首尾式动画即通过实现控件由初始状态到结束状态的过程.(主要表现在控件的Frame 透明度 ) // // ViewController.m // CX 简单动画 // // Created ...
- ios uiview封装动画(摘录)
iOS开发UI篇—核心动画(UIView封装动画) 一.UIView动画(首尾) 1.简单说明 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画 ...
- IOS开发-UIView之动画效果的实现方法(合集)
http://www.cnblogs.com/GarveyCalvin/p/4193963.html 前言:在开发APP中,我们会经常使用到动画效果.使用动画可以让我们的APP更酷更炫,最重要的是优化 ...
- 17-UIKit(UIView的动画)
2. UIView的动画 UIView类本身具有动画的功能 2.1 概念 由UI对底层Core Animation框架的封装 可以轻松简单的实现动画效果 2.2 两种使用方式 1> Block ...
- 如何停止和扭转UIView的动画
本文转载至 http://codego.net/576089/ 我有它收缩时碰到切换按钮UIView的动画跳和它扩展恢复到原来的大小当再次接触到按钮.密封式前大灯一切都工作得很好.问题是,动画师注意 ...
- UIView Animation 动画学习总结
目录 一.前言 二.UIView Animation 2.1 简单动画 2.2 关键帧动画 2.3 View 的转换 三.CALayer Animation 3.1 基本动画(CABasicAnima ...
- 原生JS封装简单动画效果
原生JS封装简单动画效果 一致使用各种插件,有时候对原生JS陌生了起来,所以决定封装一个简单动画效果,熟悉JS原生代码 function animate(obj, target,num){ if(ob ...
- jquery添加光棒效果的各种方式以及简单动画复杂动画
过滤器.绑定事件.动画 一.基本过滤器 语法 描述 返回值 :first 选取第一个元素 单个元素 :last 选取最后一个元素 单个元素 :not(selector) 选取去除所有与给定选择器匹 ...
随机推荐
- 互联网金融必须知道:O2O、P2P、MRD、BRD、LBS、PV、UV、KPI、MRD、VP、UED....
进入互联网的朋友们和身为互联网业内人士,你们知道有多少专业术吗?有时候专业术语也是一种逼格.商业需求文档,市场需求文档,产品需求文档,功能详细说明文档,华丽丽的各种文档你知道吗?用户体验,用户界面,用 ...
- DDD:建模原语 之 四象图(转载的神文)
“模型.状态和行为特征.场景”和“四象图”,建模观的命名与立象. 建模原语:四象图 作者:achieveidea@gmail.com 命名:模型.结构特征.行为特征.场景(及其规约). 释义:模型,描 ...
- 为什么移动Web应用程序很慢(译)
前些日子,看到Herb Sutter在自己的博客中推荐了一篇文章<Why mobile web apps are slow>,在推荐里他这样写道: “I don’t often link ...
- 1、图解Oracle Logminer配置使用
LogMiner配置使用手册 1 Logminer简介 1.1 LogMiner介绍 Oracle LogMiner 是Oracle公司从产品8i以后提供的一个实际非常有用的分析工具,使用该工具可以轻 ...
- CentOS6.5菜鸟之旅:VIM插件NERDtree初探
一.介绍 用于浏览目录结构的插件,功能和windows的资源管理器类似. 二.安装过程 1. 下载插件(https://github.com/scrooloose/nerdtree) 2. 将文件复制 ...
- 轻松认识JVM运行时数据区域(使用思维导图)
下面是个人阅读周志明编写的深入浅出Java虚拟机做成思维导图的笔记,线条.颜色和图片的视觉印象比起单纯文字笔记好得太多了,文字笔记的枯燥以及硬性记忆我就不再多说,特别对于JVM这块略微有点枯燥的知识, ...
- 用cart(分类回归树)作为弱分类器实现adaboost
在之前的决策树到集成学习里我们说了决策树和集成学习的基本概念(用了adaboost昨晚集成学习的例子),其后我们分别学习了决策树分类原理和adaboost原理和实现, 上两篇我们学习了cart(决策分 ...
- mysql DDL时出现的锁等待状态
如下表格所示: session1: session2: 10:30:27 root@localhost:[testdb] mysql.sock>select * from t2;+------+ ...
- [Bootstrap]7天深入Bootstrap(4)CSS组件
Bootstrap框架的三大核心之二:组件. 组件也是最核心的地方,因为绝大部分的网页都必须利用组件才能构建出绚丽的页面. 组件包括:Icon图标(Glyphicon). 下拉菜单(Dropdown) ...
- sprint3(第四天)
今天继续完成前台和后台的整合 燃尽图: