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) 选取去除所有与给定选择器匹 ...
随机推荐
- 使用JavaScript判断用户是否为手机设备
最近在做微信服务号开发,其中遇到一个问题是微信服务号查看的个人的消息,如果点击在浏览器中查看(iOS中是在Safari中打开)应该是跳转到登录页面,因为页面需要从后台获取,因为需要服务端判断,如果是存 ...
- LoRaWAN协议(一)--架构解析
LoRaWAN 分层 总体架构一共分为4部分: LoRaWAN从底层到最后用户拿到数据的通讯过程通讯大致可分为三段: MOTE <---> GW (MAC层) GW <---> ...
- 前端翻译:Promises/A+规范
原文地址:https://promisesaplus.com/ 本篇为原文翻译+个人理解,若有谬误请各位指正,谢谢. 尊重原创,转载请注明来自:http://www.cnblogs.com/fsjoh ...
- IOS开发UI基础UIImageView属性属性
UIImageView属性 1.Image 设置图片,默认显示 UIImageView *_imageView = [[UIImageView alloc]init]; _imageView.imag ...
- mysql 线上not in查询中的一个坑
今天早上开发又过来说,怎么有个语句一直没有查询出结果,数据是有的呀,并发来了如下的sql(为了方法说明,表名及查询均做了修改): select * from t2 where t2.course no ...
- MySQL忘记root用户密码修改方法
一般来说在MySQL修改用户密码有好几种方法: 1.修改自己的密码可用: set password=password('123456'); 2.修改其它用户的密码可用: set password fo ...
- [ORM] Entity Framework(2) CodeFirst进阶
在上一节中,实现了CodeFirst快速入门.但是很多与数据库的细节还无法自定义.以及使用EF过程中,需要注意的事项. 在本节中,会涉及到以下 EF中的连接字符串 EF的对象状态 延迟加载,为什么需要 ...
- 点餐系统mealsystem.sql
/* Navicat MySQL Data Transfer Source Server : localhost Source Server Version : 50162 Source Host : ...
- 重构第27天 去除上帝类(Remove God Classes)
理解:本文中的”去除上帝类”是指把一个看似功能很强且很难维护的类,按照职责把自己的属性或方法分派到各自的类中或分解成功能明确的类,从而去掉上帝类. 详解:我们经常可以在一些原来的代码中见到一些类明确违 ...
- jQuery回调函数
1.引言 今天在学习<jQuery基础教程>在学习编写插件的时候,书中说利用回调函数来当参数,会极大的提高程序的灵活性.对回调函数很陌生.研究了一下给的示例程序.感觉对回调函数有了基本的了 ...