美文网首页
iOS OS X Animation(动画)总结(二)

iOS OS X Animation(动画)总结(二)

作者: BBH_Life | 来源:发表于2017-06-27 15:38 被阅读38次

    OS X Animation Technologies

    相比使用底层的API例如OpenGL来表现动画,OS X提供了高层次的API来表现动画,不论是在Cocoa或者Carbon应用中。

    Core Animation

    CA是一个OC框架,第一次在OS X v10.5中介绍。使用CA你可以为下列对象动态的设置着色和动画:text,2D graphics,OpenGL,Quartz Composer compositions 和QuickTime video simultaneously,complete with transparency effects and Core Image filters and effects。
    CA的核心是一个高速的2D layering引擎。
    CA可以修改的layer的基础位置和形状,每个层也提供了更多可选的可操作的属性,包括:

    • 一个可选的背景色
    • 一个可选的角半径
    • 一个可选的Core Image滤镜的数组
    • 一个Core Image滤镜用来组合layer的内容和背景
    • 一个可选的Core Imgae滤镜数组被layer的内容和子layer使用
    • 控制layer透明度
    • 一些来绘制影子的属性:颜色,偏移量,透明度和模糊半径

    虽然CA是一个2D引擎,但是它提供了prjective transformations来涉足3D绘图。

    动画图层

    CA提供了两种方式来使一个图层的虚拟属性富有生命。隐式方法和显式方法。
    隐式动画是直接修改layer的属性,CA会自动的加入动画来使得属性过渡是动画形式。
    显式动画需要创建一个CA对象,一个具体的Layer和可选的属性。显式动画只是修改了layer的显示属性值,并没有修改其实际上的属性值。当动画结束的时候,需要设置实际的属性值才可以使得动画比较自然。

    布局管理

    Core Animation 图层支持经典的Cocoa视图模型,定位图层相对于它们的超层 - 一种被称为“spring and struts”的风格。 此外,Core Animation还提供了一个更一般的布局管理器机制,允许您编写自己的布局管理器。 自定义布局管理器负责提供相关图层的子图层的布局。
    使用自定义布局管理器,您的应用程序可以利用隐式动画创建复杂的动画。 更新图层的位置,大小或变换矩阵会使其对新设置进行动画处理。 CoverFlow风格的动画是通过自定义布局管理器完成的。
    Core Animation提供了一个约束布局管理器类,它使用一组约束来排列图层。
    每个指定的约束描述了一层(左,右,顶或底边或水平或垂直中心)的一个几何属性与其一个兄弟层或其上层的几何属性之间的关系。

    CA代理

    CA使用了动画代理来实现广义动画。
    支持NSAnimatablePropertyContainer协议的类为符合键值编码的任何属性提供隐式动画支持。 通过动画代理操作,您可以像Core Animation一样执行隐式动画。
    与核心动画不同,Core Animation只允许具有直接映射到render-tree属性的属性的动画,如果应用程序包的类实现NSAnimatablePropertyContainer协议,则允许任何键值编码兼容属性动画化。

    相关文章

      网友评论

          本文标题:iOS OS X Animation(动画)总结(二)

          本文链接:https://www.haomeiwen.com/subject/dtdecxtx.html