仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2160|回复: 19
打印 上一主题 下一主题

[学习教程] IOS教程之iOS easing tween 动画效果仓酷云

[复制链接]
若天明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:39:00 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
以后的学习中,一定要多问自己几个为什么,多向有经验的人请教,不要碍于面子。我看重苹果未来的发展,所以我一定要坚持下去,也许别人很容易就学会了的工具,我要学很久,但没关系,因为我始终相信勤能补拙这句话!在iOS开辟中,要做一个动画效果,我们会用到CAKeyframeAnimation。这个库供应了一些对frame动画的把持,什麽是frame动画?frame动画就比如电视动画那样,由一格一格的丹青(也能够想像成frame)组成,疾速播放丹青便成了动画。在CAKeyframeAnimation的观点是一样,你只必要供应keyframe的信息,程序会主动完成keyframe之间的”丹青”。假如人人有效过adobeFlash这工具,实际上是同等motion/shapetween。好吧!举个例子对照分明分明。假如想对一个图形做一个弹出的动画,用CAKeyframeAnimation能够写成
  1. 1234567891011121314151617181920
复制代码
  1. CAKeyframeAnimation*boundsOvershootAnimation=[CAKeyframeAnimationanimationWithKeyPath:@"bounds.size"];CGSizestartingSize=CGSizeZero;CGSizetargetSize=CGSizeMake(100,100);CGSizeovershootSize=CGSizeMake(120,120);CGSizeundershootSize=CGSizeMake(80,80);NSArray*boundsValues=[NSArrayarrayWithObjects:[NSValuevalueWithCGSize:startingSize],[NSValuevalueWithCGSize:targetSize],[NSValuevalueWithCGSize:overshootSize],[NSValuevalueWithCGSize:undershootSize],[NSValuevalueWithCGSize:targetSize],nil];[boundsOvershootAnimationsetValues:boundsValues];NSArray*times=[NSArrayarrayWithObjects:[NSNumbernumberWithFloat:0.0f],[NSNumbernumberWithFloat:0.5f],[NSNumbernumberWithFloat:0.8f],[NSNumbernumberWithFloat:0.9f],[NSNumbernumberWithFloat:1.0f],nil];[boundsOvershootAnimationsetKeyTimes:times];boundsOvershootAnimation.duration=1.0;
复制代码
这个弹出的动画包括了5个keyframe,目标是令弹出带点跳动的感到。[boundsOvershootAnimationsetValues:boundsValues]这一行代码就设定了这动画的keyframe。另外一个主要的元素就是工夫,CAKeyframeAnimation供应了keyframe工夫的把持,假如不设定便会以直线性开展。而这动画会以先慢後快的情势呈现,为什麽呢?请看[boundsOvershootAnimationsetKeyTimes:times]这一段。动画长一秒,由0-0.5秒会举行startingSize到targetSize的动画,0.5-0.8秒会举行targetSize到overshootSize的动画。云云类推就会做出先慢後快的效果。
CAKeyframeAnimation还供应了其他办法往把持keyframe,以下是一个通明淡出的动画。
  1. 123456
复制代码
  1. CABasicAnimation*opacityAnimation=[CABasicAnimationanimationWithKeyPath:@"opacity"];opacityAnimation.fromValue=[NSNumbernumberWithFloat:1.0f];opacityAnimation.toValue=[NSNumbernumberWithFloat:0.0f];opacityAnimation.timingFunction:[CAMediaTimingFunctionfunctionWithName:kCAMediaTimingFunctionEaseIn]];//EaseIncurve//opacityAnimation.timingFunction:[CAMediaTimingFunctionfunctionWithName:kCAMediaTimingFunctionEaseOut]];//EaseOutcurve//opacityAnimation.timingFunction=[CAMediaTimingFunctionfunctionWithControlPoints:1.0:0.0:1.0:0.1];//Beziercurve
复制代码
opacityAnimation.timingFunction是用来把持动画线性开展。个中[CAMediaTimingFunctionfunctionWithControlPoints:1.0:0.0:1.0:0.1]是一个贝塞尔曲线的把持办法。这也能够令动画做到先慢後快或先快後慢的了局。你会问,我安知道效果会如何?这里有一个图表化的工具申明数字线性关Shttp://netcetera.org/camtf-playground.html

很多框架是用C写的学习iOS开发基础可以按照下面两个方面学基础(原料钢铁塑料)
若天明 该用户已被删除
沙发
 楼主| 发表于 2015-1-19 10:26:20 | 显示全部楼层
才在自己的Windows电脑上安装配置成功了一个完美的Mac OS X Lion(10.7.4)系统,而且下载了Xcode4.5的最新版本。虽然不能实机调试,但是作为iOS开发学习已经非常完美了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-17 06:22

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表