前言   关于CAAnimation和CALayer类,核心动画扩展了NSKeyValueCoding协议.这个扩展为一些keys添加了默认值,扩大了封装协议,添加了为CGpoint.CGRect.CGSize和[CATransform3D](https://developer.apple.com/documentation/quartzcore/catransform3d)类型的支持.   KVC支持的集成类   CAAnimation和CALayer类是支持KVC的,这意味着我们可以为任意的…
前言   许多CALayer和CIFliter的属性都是可动画的.本节附录列出了这些属性默认使用的动画.   CALayer可动画属性   表B-1展示了CALayer类的可动画属性.针对每个属性此表也列出了对应的默认动画对象的类型,这些动画以隐式的方式执行.   Table B-1 Layer的属性和他们默认的动画 table th:first-of-type { width: 25%; } 属性 默认动画 anchorPoint 使用默认的隐式CABasicAnimation对象,在表Tab…
前言   在渲染过程中,核心动画获取Layer的各种属性并以特定的顺序渲染他们.这个顺序决定了Layer的最终的样貌.本节将会阐述通过设置不同的Layer样貌相关属性对应产生的渲染结果. 注意:Mac OSX与iOS平台中,Layer样貌相关属性是不同的,通过本节将会知道他们的区别.(鄙人暂不翻译Mac OSX的内容,除非牵涉到iOS.)   几何属性   一个Layer的几何属性指定了它相对于它的父视图如何展示(摆放).集合属性指定了用于是Layer边角变圆的圆角属性,并制定了应用于Layer…
Core Animation 文档翻译 (第二篇) 核心动画基础要素 核心动画为我们APP内Views动画和其他可视化元素动画提供了综合性的实现体系.核心动画不是我们APP内Views的替代品,相反,它是一种结合Views来提供更好性能和支持Content动画的技术.它通过将Views的Content缓存进可以被绘图软件直接操作处理的Bitmaps来达到这种高性能.在某些情况下,这种缓存技术可能需要我们重新思考我们将要如何呈现和管理我们的APP的Content,但是大多数情况我们可以在不去考虑这…
Core Animation 文档翻译(第一篇)   2018-01-13  星期6 前言:作为iOS 开发,官方文档的阅读是很有必要的,值此周末便写下此文.作为iOS 实际经验3年的开发,之前的应用之前有阅读并实践过经典的<iOS核心动画高级技巧>,其gitbook地址:https://zsisme.gitbooks.io/ios-/content/chapter10/custom-easing-functions.html,然总觉此书的翻译版,对于目前的CoreAnimation 官方文档…
Core Animation 文档翻译(第一篇) 前言 作为iOS 开发,官方文档的阅读是很有必要的,值此周末便写下此文.作为iOS 实际经验3年的开发,之前有阅读并实践过经典的<iOS核心动画高级技巧>,其gitbook地址,然总觉此书的翻译版,较于目前的CoreAnimation 官方文档的有所空缺,故生念,愿有所补缺,便着手翻译CoreAnimation,如有纰漏,望各位兄台不吝赐教. 关于 Core Animation(以下翻译为:核心动画) 核心动画是可用于在iOS和OS X平台上实…
Core Animation 文档翻译(第三篇) 设置Layer对象 当我们使用核心动画时,Layer对象是一切的核心.Layers 管理我们APP的可视化content,Layer也提供了content样式及content可视化的外观的调整选项.尽管iOSAPP自动支持Layer,但是OS XAPP必须明确开启Layer的使用才能利用这些相关的性能特点.一旦开启Layer的使用,我们需要去理解如何配置和操作Layers才能得到想要的效果. 为APP开启核心动画的支持 在iOS APP里,核心动…
Core Animation 文档翻译(第四篇) 让Layer的content动画起来 核心动画的基础接口以及为拥有Layer的View做的动画扩展接口,使得为Layer制作复杂动画变得简单化.例如改变Layer的frame的size.改变Layer在屏幕上的position.应用旋转transform.或者改变它的opacity.通过使用核心动画,创建一个动画效果将会变得简单的就像修改属性一样,但是我们也能显式的创建和设置动画参数. 关于创建更多高级动画可以参见Advanced Animati…
  高级动画技巧 配置属性动画或者关键帧动画的方式是多种多样的.需要同时执行多个动画或者顺序执行多个动画的APP,可以通过高级的方式同步这些动画的timing或者将这些动画绑定在一起.我们也可以使用其他类型的动画对象来创建可视化的transitions和别的有趣的动画效果.   过渡动画支持Layer可见性的变化 就像本级标题名字所说一样,一个transition动画对象为Layer创建一个动画性的过渡效果.transistion对象最常用的方法就是以协调的方式让一个Layer动画形式的出现,并…
前言 核心动画是提高基于APP动画帧率的好方式,但是核心动画的使用不代表性能的提升的保证.尤其在OSX,当使用核心动画时,我们仍需选择最有效的方式.和所有的性能相关的问题一样,我们应该使用工具时时的评估和跟踪APP的性能,以至于我们能够确保性能是提升而不是退化的.   综合的建议和技巧 有以下几种方式能让我们的Layers更有效的实现效果.对于任何优化来说,我们应该在尝试优化前先测量当前代码的性能:根据未优化之前的性能检测结果,能够让我们知道所做的优化是否提升了性能.   尽可能的使用不透明的L…