IOS动画效果的实现

对于动画的使用,其实一直以来就不是很熟悉,因为平时使用的也少,使用也只是简单的使用.其实关于动画,一直在IOS中广泛存在.有时我们在调用某个方法时,经常会有一个参数Animation,填入BOOL参数,选择是否需要动画效果.

今天我就浅谈一下几种基本动画的实现.

首先为了测试动画效果,我随便声明了一个View.

self.animationView = [[UIView alloc] initWithFrame:CGRectMake(50 , 100 , 100, 50)];

self.animationView.backgroundColor = [UIColor blueColor];

[self.view addSubview:self.animationView];     //初始化位置,并且赋颜色,用于测试

首先,是简单的移动,从一个位置移动到另一个位置.用UIView动画就可以

[UIView animateWithDuration:0.5 animations:^{   //其中duration是动画时间参数,还有几个差不多的方法,就不一一列举了

//            self.animationView.frame = CGRectMake(0, 451, 375, 216);

//

//        }];

[UIView animateWithDuration:0.5 delay:3 options:UIViewAnimationOptionRepeat animations:^{   //delay参数表示延时几秒进行,options参数是枚举值,填入不同的,有不同效果,这个枚举值表示重复

//  self.animationView.frame = CGRectMake(0, 451, 375, 216);

} completion:^(BOOL finished) {

}];

//接下来是颤抖效果

[UIView animateWithDuration:0.5 delay:2 usingSpringWithDamping:0.01 initialSpringVelocity:10 options:UIViewAnimationOptionAllowAnimatedContent animations:^{

//            NSLog(@"wowoow");

//            vc.animationView.frame =  CGRectMake(0, 451, 375, 216);

//

//        } completion:^(BOOL finished) {

//

//

//        }];

接下来是2D仿射变换

//1.rotate 旋转

//2.M_PI 圆周率 M_PI = 180度

//    [UIView beginAnimations:@"键盘" context:nil];

//    [UIView setAnimationDuration:0.5];

//       self.animationView.transform = CGAffineTransformRotate(self.animationView.transform, M_LOG10E);  //效果是旋转一定角度,第二个参数填入的时角度值

缩放和向下向左移动

//缩放

// self.animationView.transform = CGAffineTransformScale(self.animationView.transform, 0.5, 0.5);

//参数1.向右

//参数2.向下

//self.animationView.transform = CGAffineTransformTranslate(self.animationView.transform, 0, 10);

除了以上的动画方式外,还有CALayer动画

CABasicAnimation *basicAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];//rotation表示旋转,scale表示缩放.

basicAnimation.duration = 2;//动画时间

//重复次数

basicAnimation.repeatCount = NSIntegerMax;  //无限重复

//是否恢复到原来的状态

basicAnimation.autoreverses = NO;

//是从什么状态开始动画

basicAnimation.fromValue = [NSNumber numberWithInt:0];

//是从什么状态结束动画

basicAnimation.toValue = [NSNumber numberWithInt:4];

[self.animationView.layer addAnimation:basicAnimation forKey:@"键盘"];

当然合一把旋转和缩放一起添加入动画组,使之实现旋转的过程中进行缩放

CAAnimationGroup *group = [CAAnimationGroup animation];

group.animations = @[basicAnimation, basicAnimation1];

group.repeatCount = NSIntegerMax;

group.autoreverses = YES;

group.duration = 2;

[self.animationView.layer addAnimation:group forKey:@"wowowoo"];

#pragma mark -- 关键帧动画   关键帧动画可以让你的view的layer按照预定的轨迹做动画.

CAKeyframeAnimation *keyFrameAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];

//创建路径

CGMutablePathRef path = CGPathCreateMutable();

//创建路径的起始坐标 起始点是锚点 也就是中心点

CGPathMoveToPoint(path, NULL, self.animationView.center.x, self.animationView.center.y);

//设置画面移动的点

CGPathAddLineToPoint(path, NULL, 100, 100);

CGPathAddLineToPoint(path, NULL, 150, 120);

CGPathAddLineToPoint(path, NULL, 100, 140);

CGPathAddLineToPoint(path, NULL, 150, 160);

CGPathAddLineToPoint(path, NULL, 100, 180);

CGPathAddLineToPoint(path, NULL, 150, 200);

//设置动画移动的曲线轨迹

CGPathAddCurveToPoint(path, NULL, 20, 40, 100, 140, 200, 60);

CGPathAddCurveToPoint(path, NULL, 10, 140, 80, 110, self.animationView.center.x  , self.animationView..center.y);

[keyFrameAnimation setPath:path];

[keyFrameAnimation setDuration:5];

[self.animationView..layer addAnimation:keyFrameAnimation forKey:@"key"];

这些都是动画的基本方法,想要实现复杂的想过,就需要靠自己的逻辑思维来实现了.

时间: 2024-10-24 14:53:33

IOS动画效果的实现的相关文章

iOS动画效果和实现

动画效果提供了状态或页面转换时流畅的用户体验,在iOS系统中,咱们不需要自己编写绘制动画的代码,Core Animation提供了丰富的api来实现你需要的动画效果. UIKit只用UIView来展示动画,动画支持UIView下面的这些属性改变: frame bounds center transform alpha backgroundColor contentStretch 1.commitAnimations方式使用UIView动画 [cpp] view plain copy - (voi

ios 动画效果CATransition笔记

初学ios开发,很多概念还不清楚,所以只有边学边做例子.又怕学了后面忘了前面,因此用自己的博客来纪录自己的学习历程,也是对自己学习不要懈怠做个监督. 刚学ios做动画效果.因为ios封装得很好,实现ios的漂亮动画效果也很简单,却因为我自己的粗心落了一个字母 导致纠结了一天,这个教训必须记住,同时也懂得了调试技能在编程里地位也是非常重要的存在. 实现ios动画有两种方法:一种UIView层面的,一种是使用CATransition. [objc] view plaincopy - (void)vi

ios 动画效果

转载:http://www.cnblogs.com/ludashi/p/4160208.html 一.封装动画方法 1.用CATransition实现动画的封装方法如下,每句代码是何意思,请看注释之. 1 #pragma CATransition动画实现 2 - (void) transitionWithType:(NSString *) type WithSubtype:(NSString *) subtype ForView : (UIView *) view 3 { 4 //创建CATra

iOS动画和第三方插件学习网址

1.iOS动画效果 动画效果: https://dribbble.com/search?q=animation http://capptivate.co 网页动画十二原则: http://fortawesome.github.io/Font-Awesome/ 2.iOS开发中的第三方插件 ReaciveCocoa: http://blog.csdn.net/abc649395594/article/details/46123379  http://limboy.me/ios/2013/12/27

IOS动画(Core Animation)总结 (参考多方文章)

一.简介 iOS 动画主要是指Core Animation框架.官方使用文档地址为:Core Animation Guide. Core Animation是IOS和OS X平台上负责图形渲染与动画的基础框架.Core Animation可以作用与动画视图或者其他可视元素,为你完成了动画所需的大部分绘帧工作.你只需要配置少量的动画参数(如开始点的位置和结束点的位置)即可使用Core Animation的动画效果.Core Animation将大部分实际的绘图任务交给了图形硬件来处理,图形硬件会加

iOS动画入门一

一 动画介绍 在iOS中动画实现技术主要是:Core Animation. Core Animation负责所有的滚动.旋转.缩小和放大以及所有的iOS动画效果.其中UIKit类通常都有animated:参数部分,它可以允许是否使用动画. 本文将介绍UIView动画的实现方式,有基础方法和block方法. 二 实现方法 1 基础动画 [UIView beginAnimations:nil context:nil]; //动画开始 //Code... [UIView commitAnimation

(转)iOS动画Core Animation

文章转载:http://blog.sina.com.cn/s/blog_7b9d64af0101b8nh.html 在iOS中动画实现技术主要是:Core Animation. Core Animation负责所有的滚动.旋转.缩小和放大以及所有的iOS动画效果.其中UIKit类通常都有animated:参数部分,它可以允许是否使用动画. Core Animation主要是使用 我们知道每个UIView都关联到一个CALayer对象,CALayer是Core Animation中的图层. Cor

iOS点击查看大图的动画效果

对于图片来说,除了表情包,几乎都会被点击查看大图.今天就讲解一个查看和收起大图的动画效果,先直接看效果图: 如图所示,最开始是一个小图,点击小图可以查看大图.大图会从小图的位置和大小"弹"出来,同时背景变成半透明的阴影.点击大图或者阴影后,收起大图,同样地弹回到小图去,同时去掉阴影背景,就像是一张图片在伸大缩小一样. 现在看看这是怎么实现的.在思考一个动画的实现方法时,把动画的动作进行分解然后再一个个去思考怎么实现是一个好的习惯,我们稍微分解一下,这个动画在显示大图和收起大图的时候做了

iOS开发 QQ粘性动画效果

QQ(iOS)客户端的粘性动画效果 时间 2016-02-17 16:50:00  博客园精华区 原文  http://www.cnblogs.com/ziyi--caolu/p/5195615.html 主题 iOS开发 qq的app中要是有新的联系人发消息过来,相应联系人的cell右边会有一个红色的圆圈表示消息条数.如果去触碰那个圆圈,可以发现它竟然会跟着手指的移动而移动. 在一定范围内,手指离开屏幕,会发现红色圆圈会自动弹性的回到原来的位置.而如果超出一定距离,这个圆圈会做一个销毁的动画,