iOS Animation&Quartz2D

2017-08-09  本文已影响5人  Never_Yg

Animation

UIView的transform属性

CGAffineTransformMakeRotation(**旋转的弧度**);

CGAffineTransformRotate(**在某个transform的基础上-一般为自身**, **旋转的弧度**);

包含

CALayer和UIView动画的使用场合

  1. UIView属于UIKit框架, 属于苹果原生框架, 而CALayer属于QuartzCore框架,而后者是可以跨平台的
  2. UIView可以与用户交互,而CALayer只用于展示

Core Animation

核心动画作用在CALayer上, CALayer从概念上类似UIView, 可以将UIView看成是一种特殊的CALayer(可以响应事件)

CAAnimation.png

CAAnimation是所有动画对象的父类,实现CAMediaTiming协议, 负责控制动画的时间, 速度和时间曲线等等,是一个抽象类,不能直接使用

iOS9.0之后新增CASpringAnimation类,它实现弹簧效果的动画, 是CABasicAnimation的子类

核心动画中可以直接使用的类有:

Quartz2D

Quartz2D的API是纯C语言的
Quartz2D的API来自Core Graphics框架,需要导入CoreGraphice.framework
可以做什么?

Graphics Content 图形上下文

是一个CGContextRef类型的数据

Quartz2D提供了一下几种类型Graphics Context
Bitmap Graphics Context
PDF Graphics Context
Window Graphics Context
Layer Graphics Context
Printer Graphics Context

drawRect:

何时被调用:

drawRect三部曲

  1. 获取上下文
  2. 绘制图形
  3. 渲染
上一篇下一篇

猜你喜欢

热点阅读