Core Animation 核心动画

渲染,组合和动画视觉元素。

概述

核心动画提供了高帧率和平滑的动画,而不会增加CPU的负担,也不会减慢你的应用程序。绘制每一帧动画所需的大部分工作都为你完成了。你可以配置动画参数,比如开始和结束点,Core animation会完成剩下的工作,将大部分工作交给专用的图形硬件来加速渲染。更多细节请参见《核心动画编程指南》。

关于核心动画Core Animation是一个在iOS和OS X上都可用的图形渲染和动画基础设施,你可以使用它来动画视图和应用程序的其他视觉元素。有了Core Animation,绘制动画每帧所需的大部分工作都为你完成了。你所要做的就是配置一些动画参数(比如开始和结束点),并告诉核心动画开始。Core Animation完成剩下的工作,将大部分实际的绘图工作交给板载图形硬件来加速渲染。这种自动图形加速导致高帧率和平滑的动画,而不负担CPU和减慢您的应用程序。如果你在写iOS应用,不管你知不知道,你都在使用核心动画。如果你正在编写OS X应用程序,你可以用极少的努力来利用核心动画。Core Animation位于AppKit和UIKit之下,并紧密集成到Cocoa和Cocoa Touch的视图工作流中。当然,Core Animation也有扩展你的应用视图的功能的接口,并给你更细粒度的控制你的应用的动画。

ios 13 animation动画不播放_Core

优点
  • 简单易用的高性能混合编程模型
  • 用类似于视图一样,使用图层来创建复杂的编程接口
  • 轻量化的数据结构,它可以同时显示让上百个图层产生动画效果
  • 一套非常较简单的动画接口,能让动画运行在独立的线程中,并可以独立于主线程之外
  • 一旦动画配置完成并启动,核心动画就能独立并完全控制相应的动画帧
  • 提高应用性能,应用程序只有当发生改变的时候才会重绘内容,使用Core Animation可以不使用其它图形API ,例如OpenGL来获取高效的动画性能
  • 灵活的布局管理模型,允许图层相对同级图层的关系来设置属性的位置和大小
可作动画的属性
  • opacity 接收器的不透明度。可以做成动画。
  • isHidden 一个布尔值,指示是否显示该层。可以做成动画。
  • masksToBounds 一个布尔值,指示子层是否被剪切到层的边界上。可以做成动画。
  • mask 一个可选的图层,它的alpha通道用于蒙版层的内容。
  • isDoubleSided 一个布尔值,指示层在远离查看器时是否显示其内容。可以做成动画。
  • cornerRadius 绘制圆角图层背景时使用的半径。可以做成动画。
  • borderWidth 图层边框的宽度。可以做成动画。
  • borderColor 图层边框的颜色。可以做成动画。
  • backgroundColor 接收器的背景色。可以做成动画。
  • shadowOpacity 图层阴影的不透明度。可以做成动画。
  • shadowRadius 用于渲染图层阴影的模糊半径(以点为单位)。可以做成动画。
  • shadowOffset 图层阴影的偏移(以点为单位)。可以做成动画。
  • shadowColor 图层阴影的颜色。可以做成动画。
  • shadowPath 图层阴影的形状。可以做成动画。
  • style 一个可选的字典,用于存储层未显式定义的属性值。
  • maskedCorners

每个可见的图层树,都是由2个相应的树组成,一个是呈现树,一个是渲染树。