首页 / IOS / iOS之动画学习笔记一
iOS之动画学习笔记一
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了iOS之动画学习笔记一,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2050字,纯文字阅读大概需要3分钟。
内容图文
![iOS之动画学习笔记一](/upload/InfoBanner/zyjiaocheng/1192/b7b5f75bb40446ba812683caa1ae2fb6.jpg)
iOS复杂动画都是和贝塞尔曲线结合在一起的。因此要学会iOS动画,必须先理解贝塞尔曲线。贝塞尔曲线的教程网上很多,这里就不过多的阐述。主要还是来讲讲有关动画方面的东西。
一、画一条简单的曲线
我们先准备一条波浪形的贝塞尔曲线:
CGPoint startPoint = CGPointMake(50, 300);
CGPoint endPoint = CGPointMake(300, 300);
CGPoint onePoint = CGPointMake(150, 200);
CGPoint twoPoint = CGPointMake(200, 400);
UIBezierPath *path = [UIBezierPathbezierPath];
path.lineWidth = 10.0f;
path. lineCapStyle = kCGLineCapRound;
[path moveToPoint:startPoint];
[path addCurveToPoint:endPoint controlPoint1:onePoint controlPoint2:twoPoint];
但是贝塞尔曲线是一个抽象的对象。它的显示是要基于CALayer的。而CALayer的子类CAShapeLayer就是专门用于显示一条曲线的一个图层类。
CAShapeLayer *layer = [CAShapeLayerlayer];
layer.path = [path CGPath];
layer.strokeColor = [[UIColorredColor] CGColor];
layer.fillColor = [[UIColorclearColor] CGColor];
[self.view.layeraddSublayer:layer];
二、给layer层添加动画
这个时候其实已经画好了一条曲线。但是它是静态的,要给它加动画就必须与 CAAnimation一起使用。CAAnimation是一个抽象的动画类。下面我拿苹果文档中的一张图来展示Core Animation的层级关系,它是一个对OpenGL和Core Grapgics的封装。
用给这条曲线添加一个逐渐出现的动画,就要使用CABasicAnimation。其中CABasicAnimation是继承自CAPropertyAnimation的,
CAPropertyAnimation是继承自CAAnimation的。CABasicAnimation就只有三个属性,分别是(id)fromValue、(id)toValue、(id)byValue。
先来看一段代码:
CABasicAnimation *anim = [CABasicAnimationanimation];
anim.keyPath = @"strokeEnd";
anim.fromValue = @(0);
anim.toValue = @(1);
anim.duration = 2;
anim.removedOnCompletion = NO;
anim.fillMode = kCAFillModeForwards;
[layer addAnimation :anim forKey : @"basicAnim" ];
此时,我们已经可以动态的画出一段曲线啦。那么,其中的两个属性fromValue和toValue分别是什么,有什么作用呢?
首先,我们注意到这个三个属性都是id类型的,也就是后面可以跟任何形式的值。
例如,缩放动画:
scaleAnimation.fromValue = [NSValue valueWithCATransform3D:CATransform3DIdentity];
scaleAnimation.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.1, 0.1, 1.0)];
透明度变化:
opacityAnimation.fromValue = [NSNumber numberWithFloat:1.0];
opacityAnimation.toValue = [NSNumber numberWithFloat:0.1];
旋转动画:
tranformAnimation.fromValue = [NSNumber numberWithFloat:0.f];
tranformAnimation.toValue = [NSNumber numberWithFloat:M_PI];
从上我们可以知道,fromValue代表着一个动画的初始状态,toValue代表着一个动画的结束状态。
原文:http://blog.csdn.net/cranz/article/details/51330539
内容总结
以上是互联网集市为您收集整理的iOS之动画学习笔记一全部内容,希望文章能够帮你解决iOS之动画学习笔记一所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。