- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
iOS 显式动画
iOS 显式动画
如果想让事情变得顺利,只有靠自己 -- 夏尔·纪尧姆
上一章介绍了隐式动画 概念。隐式动画是在iOS平台创建动态用户界面 一种直接
方式,也是UIKit动画机制 基础,不过它并不能涵盖所有 动画类型。在这一章
中,我们将要研究一下显式动画,它能够对一些属性做指定 自定义动画,或者创建
非线性动画,比如沿着任意一条曲线移动。
属性动画
首先我们来探讨一下属性动画。属性动画作用于图层 某个单一属性,并指定了它
一个目标值,或者一连串将要做动画 值。属性动画分为两种:基础和关键帧。
基础动画
动画其实就是一段时间内发生 改变,最简单 形式就是从一个值改变到另一个值,
这也是CABasicAnimation最主要 功能。CABasicAnimation
是CAPropertyAnimation 一个子类,而CAPropertyAnimation 父类
是CAAnimation,CAAnimation同时也是Core Animation所有动画类型 抽象基
类。作为一个抽象类,CAAnimation本身并没有做多少工作,它提供了一个计时函数
(见第十章“缓冲”),一个委托 (用于反馈动画状态)以及一
个removedOnCompletion,用于标识动画是否该在结束后自动释放 (默认YES,为了
防止内存泄露)。CAAnimation同时实现了一些协议,包括CAAction (允许
CAAnimation 子类可以提供图层行为),以及CAMediaTiming (第九章“图层时
间”将会详细解释)。
CAPropertyAnimation通过指定动画 keyPath作用于一个单一属
性,CAAnimation通常应用于一个指定 CALayer,于是这里指 也就是一个图层
keyPath了。实际上它是一个关键路径 (一些用点表示法可以在层级关系中指向任意
嵌套 对象),而不仅仅是一个属性 名称,因为这意味着动画不仅可以作用于图层
本身 属性,而且还包含了它 子成员 属性,甚至是一些虚拟 属性 (后面会详细
解释)。
CABasicAnimation继承于CAPropertyAnimation,并添加了如下属性:
id fromValue
id toValue
id byValue
从命名就可以得到很好 解释:fromVal e代表了动画开始之前属性 值,toVal e
代表了动画结束之后 值,byVal e代表了动画执行过程中改变 值。
通过组合这三个属性就可以有很多种方式来指定一个动画 过程。它们被定义成id类
型而不是一些具体 类型是因为属性动画可以用作很多不同种 属性类型,包括数字
类型,矢量,变换矩阵,甚至是颜色或者图片。
id类型可以包含任意由NSObject派生 对象,但有时候你会希望对一些不直接从
NSObject继承 属性类型做动画,这意味着你需要把这些值用一个对象来封装,或
者强转成一个对象,就像某些功能和Objective-C对象类似 Core Foundation类
型。但是如何从一个具体 数据类型转换成id看起来并不明显,一些普通 例子见表
8.1。
表8.1 用于CAPropertyAnimation 一些类型转换
Type Object Type Code Example
CGFoat NSNumber id obj = @(foat);
CGPoint NSVaue id obj = [NSVaue vaueWithCGPoint:po
CGSize NSVaue id obj = [NSVaue vaueWithCGSize:siz
CGRect NSVaue id obj = [NSVaue vaueWithCGRect:rec
CATransform3D NSVaue id obj = [NSVaue vaueWithCATransfor
CGImageRef id id obj = (__bridge id)imageRef;
CGCoorRef id id obj = (__bridge
您可能关注的文档
- Google基本搜寻技巧.pdf
- GPT磁盘体系结构详解.docx
- GP_SupplierList(指定原材料供_商一_表20080208版更新版).pdf
- Google搜寻引擎.ppt
- 2013版《建筑工地进程质量验收统一标准》GB50300-2013.ppt
- 2015造价工地进程师:钢结构工地进程量计算、报价要点.pdf
- 2016一级消防工地进程师技术实务试题:火灾自动报警系统.docx
- gre考试需摆脱的七种坏情绪.pdf
- GRE数学中考点比重分析-智课教育旗下智课教育.pdf
- 2016北京理工光学工地进程考研初试复试经验.doc
- 旅游度假区景观设计评估与旅游市场营销策略.docx
- 《STP理论》课件 —— 市场细分、目标市场与定位策略的深度解析.ppt
- 生物制药行业细胞治疗技术市场细分与竞争格局分析报告.docx
- 共享办公空间增值服务2025年共享办公空间品牌塑造报告.docx
- 幼儿园法制教育游戏活动计划.docx
- 辽宁省朝阳市建平县二中2024-2025学年高二3月月考语文试题(原卷版+解析版).docx
- 《STP理论在企业决策中的应用》课件.ppt
- 城市公共自行车智能化改造对城市景观影响评估报告.docx
- 2025年罕见病药品研发投入与产业竞争力分析报告.docx
- 老年旅游市场分析2025:老龄化趋势下的产品开发与市场策略研究.docx
文档评论(0)