iOS-动画效果(首尾式动画,代码快动画,核心动画,序列帧动画)
一.各个动画的优缺点
1.首尾动画:如果只是修改空间的属性,使用首尾动画比较方便,如果在动画结束后做后续处理,就不是那么方面了。
2.核心动画:有点在于对后续的处理方便。
3.块动画:
(1)在实际的开发中更常用的时block代码块来处理动画操作。
(2)块动画相对来说比较灵活,尤为重要的是能够将动画相关的代码编写在一起,便于代码的阅读和理解.
4.使用序列帧动画:对UIImageview和button按钮进行连线。
#import "ViewController.h" @interface ViewController ()
{
UIView *_view;
UIImageView *_imageView;
}
@end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad]; //用于block代码快动画,核心动画,UIView封装的首尾式动画
_view = [[UIView alloc] init];
_view.frame = CGRectMake(, , , );
_view.backgroundColor = [UIColor redColor];
[self.view addSubview:_view]; //用于序列帧动画
_imageView = [[UIImageView alloc] init];
_imageView.frame = CGRectMake(, , , );
_imageView.backgroundColor = [UIColor orangeColor];
[self.view addSubview:_imageView];
} #pragma mark 序列帧动画
//- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
//{
// NSMutableArray * arrayM = [NSMutableArray array];
//
//
// for (int i = 0; i < 4; i ++) {
// [arrayM addObject:[UIImage imageNamed:[NSString stringWithFormat:@"%d.png",i]]];
// }
// //设置动画数组
// [_imageView setAnimationImages:arrayM];
//
// //设置动画播放次数 MAXFLOAT:无穷大数,表示一直循环下去
// [_imageView setAnimationRepeatCount:MAXFLOAT];
//
// //设置动画播放时间(图片个数 * 计划的每张照片动画时长)
// [_imageView setAnimationDuration:4 * 0.75];
//
// //开始动画
// [_imageView startAnimating];
//} #pragma mark block代码快动画
//- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
//{
//
// [UIView animateWithDuration:2.0 animations:^{
// NSLog(@"动画开始执行前的位置: %@",NSStringFromCGPoint(_view.center));
// _view.center = CGPointMake(self.view.bounds.size.width - 20, self.view.bounds.size.height - 20);
//
//
// } completion:^(BOOL finished) {
// NSLog(@"动画执行完毕后的位置: %@",NSStringFromCGPoint(_view.center));
// }];
//} #pragma mark 核心动画
//- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
//{
// //创建核心动画
// CABasicAnimation * animation = [CABasicAnimation animation];
//
// //平移
// animation.keyPath = @"position";
//
// //设置执行的动画
// animation.toValue = [NSValue valueWithCGPoint:CGPointMake(self.view.bounds.size.width - 20, self.view.bounds.size.height - 20)];
//
// //设置动画的时长
// animation.duration = 2.0f;
//
// //设置动画执行完毕之后不删除动画
// animation.removedOnCompletion = NO;
//
// //设置保存动画的最新状态
// animation.fillMode = kCAFillModeForwards;
//
// //设置动画的代理
// animation.delegate = self;
//
// //给控件添加核心动画
// [_view.layer addAnimation:animation forKey:nil];
//}
//#pragma mark 核心动画开始时调用的方法
//- (void)animationDidStart:(CAAnimation *)anim
//{
// NSLog(@"动画开始执行前的位置: %@",NSStringFromCGPoint(_view.center));
//}
//#pragma mark 核心动画结束时调用的方法
//- (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag
//{
// NSLog(@"动画执行完毕后的位置: %@",NSStringFromCGPoint(_view.center));
//} #pragma mark UIView封装的首尾式动画
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
NSLog(@"动画执行之前的位置: %@",NSStringFromCGPoint(_view.center)); //首尾式动画
//执行动画
[UIView beginAnimations:nil context:nil]; //动画时间
[UIView setAnimationDuration:2.0f]; //设置动画的代理
[UIView setAnimationDelegate:self]; //设置动画执行完毕调用的事件
[UIView setAnimationDidStopSelector:@selector(didStopAnimation)]; _view.center = CGPointMake(self.view.bounds.size.width - , self.view.bounds.size.height - ); //动画结束
[UIView commitAnimations];
} #pragma mark 动画执行完毕调用的方法
- (void)didStopAnimation
{
NSLog(@"动画执行完毕"); NSLog(@"动画执行之后的位置: %@",NSStringFromCGPoint(_view.center));
} @end
iOS-动画效果(首尾式动画,代码快动画,核心动画,序列帧动画)的更多相关文章
- Android动画效果 translate、scale、alpha、rotate 切换Activity动画 控件位置调整
2011.10.28注:如果需要控件停在动画后的位置,需要设置android:fillAfter属性为true,在set节点中.默认在动画结束后回到动画前位置.设置android:fillAfter后 ...
- jquer导航锚点链接动画效果和返回顶部代码
$(function(){ $(".index_nav li a").click(function(event){ //绑定按钮的单击事件 var index = this.tit ...
- IOS开发-UIView之动画效果的实现方法(合集)
http://www.cnblogs.com/GarveyCalvin/p/4193963.html 前言:在开发APP中,我们会经常使用到动画效果.使用动画可以让我们的APP更酷更炫,最重要的是优化 ...
- iOS tabbar点击动画效果实现
正常情况下,我们点击tabbar都只有一个变色效果,但有时候,如果我们想给它添加一个点击动画,该如何做呢? 先上几个效果图: 1.先放大,再缩小 2.Z轴旋转 3.Y轴位移 ...
- 简单的UIButton按钮动画效果iOS源码
这个是简单的UIButton按钮动画效果案例,源码,简单的UIButton按钮动画,可以自定义button属性. 效果图: <ignore_js_op> 使用方法: 使用时把ButtonA ...
- Javascript动画效果(三)
Javascript动画效果(三) 前面我们已经介绍了速度动画.透明度动画.多物体运动和任意值变化,并且我们在Javascript动画效果(二)中介绍到我们封装了一个简单的插件雏形,接下来我们对前面的 ...
- jQuery Easing 动画效果扩展--使用Easing插件,让你的动画更具美感。
jQuery Easing 是一款比较老的jQuery插件,在很多网站都有应用,尤其是在一些页面滚动.幻灯片切换等场景应用比较多.它非常小巧,且有多种动画方案供选择,使用简单,而且免费. 引入Eas ...
- jQuery 动画效果 与 动画队列
基础效果 .hide([duration ] [,easing ] [,complete ]) 用于隐藏元素,没有参数的时候等同于直接设置 display 属性 $('.target').hide() ...
- UIAlertView弹出视图动画效果
在App设计中为了加强用户体验,我们会常常加入一些友好的动画效果.比如类似UIAlertView弹出的动画效果,由于系统中并没有直接提供类似的动画API,如果我们想要做出一样的效果,那就得深入的研究一 ...
- anime.js 实战:实现一个带有描边动画效果的复选框
在网页或者是APP的开发中,动画运用得当可以起到锦上添花的作用.正确使用动画,不但可以有助于用户理解交互的作用,还可以大大提高网页应用的魅力和使用体验.并且在现在的网页开发中,动画已经成为了一个设计的 ...
随机推荐
- 使用Excel制作万年历(可打印)
先来看看A4纸打印效果,其他功能后续继续完善中. 年份数据字典(农历节日) 农历节日表 年度 春节 元宵节 龙抬头 端午节 六月六 七月七 七月十五 仲秋节 除夕 2010年02月14日 2010年0 ...
- C# 传入引用类型的参数 返回值是否发生变化
前一段时间做项目是,一YY说如果一个方法的参数是引用类型,那么在这个方法里面所做的所有的修改再方法调用后应该有体现.事实是这样的吗? 先看code 和运行结果: 运行结果 方法SetPersonInf ...
- iOS Vuforia:TextReco 增加自己的单词库
Vuforia的文字识别引擎提供了很好的文字识别功能.引擎依赖于UTF-8字符编码,现支持的字符有A-Z a-z,换行符.空格.单引号.短斜杠.Note:不支持中文及数字.能识别的字体是: ...
- 奇怪吸引子---TreeScrollUnifiedChaoticSystem
奇怪吸引子是混沌学的重要组成理论,用于演化过程的终极状态,具有如下特征:终极性.稳定性.吸引性.吸引子是一个数学概念,描写运动的收敛类型.它是指这样的一个集合,当时间趋于无穷大时,在任何一个有界集上出 ...
- supervisor监控gearman任务
安装supervisor方法,可以直接用 yum install supervisord ,但是版本可能会旧一点,可以参考官方的方法: easy_install supervisor http://s ...
- “合规性”是考核IT运维的重要指标
ITSM的绩效考核向来是一个令人头疼的问题,有时就像一团乱麻,既无章可循,又无从下手.其实,只要掌握正确的思想方法,就能拨云见日.“斩乱麻”需“快刀”,“合规性考核”就是斩ITSM绩效考核这团乱麻的快 ...
- Linux shell crontab expdp 定时任务逻辑备份 定时删除旧文件
点击进入:Window bat expdp 定时任务逻辑备份 定时删除N天前的旧文件 创建sh脚本 [oracle@localhost ~]$ vi logicbackup.sh 添加脚本内容 #!/ ...
- Flink 案例整合
1.概述 Flink 1.1.0 版本已经在官方发布了,官方博客于 2016-08-08 更新了 Flink 1.1.0 的变动.在这 Flink 版本的发布,添加了 SQL 语法这一特性.这对于业务 ...
- Xcode 文档注释方法
摘自:http://www.cnblogs.com/bomo/p/4815963.html 文档注释,可以在调用时显示注释信息,让调用者更好的理解方法的用途. 注释方法: /// 注释 和 /** 注 ...
- 用git上传本地项目到github上
首先确认自己已经安装了git,打开git bash,输入ssh-keygen -t rsa -C "自己的邮箱地址@XXX.com" ,生成自己的公钥与私钥 一路默认回车,会生 ...