iOS Animation&Quartz2D

  • CGRectOffset(CGRect rect, CGFloat dx, CGFloat dy) rect按照dx, dy平移
  • CGRectInset(CGRect rect, CGFloat dx, CGFloat dy)rect先按照dx, dy进行平移 然后再按照dx, dy缩放,负数是放大,正数是缩小
  • center是能修改位置
  • bounds只能修改大小
  • frame既能修改大小也能修改位置

Animation

UIView的transform属性

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

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

包含

  • 平移(Translation)
  • 缩放(Scale)
  • 旋转(Rotation)
  • 带不带make的区别,带make的都是从原始位置运动,不带make的方法,是在上一次运动的基础上,继续运动

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的子类

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

  • CABasicAniamtion
  • CAKeyframeAnimation
  • CATransition
  • CAAnimationGroup
  • CASpringAnimation
    资料

Quartz2D

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

  • 生成图片
  • 生成PDF
  • 裁剪图片
  • 自定义UI控件
  • 画板
  • 手势解锁
Graphics Content 图形上下文

是一个CGContextRef类型的数据

  • 保存绘图信息,绘图状态
  • 绘图的输出目标
  • 指定不同的Graphics Context,就可以将相同的图像绘制到不同的目标上
Quartz2D提供了一下几种类型Graphics Context
Bitmap Graphics Context
PDF Graphics Context
Window Graphics Context
Layer Graphics Context
Printer Graphics Context

drawRect:

何时被调用:

  • 第一次显示到屏幕
  • 调用view的setNeedsDisplay或者setNeedsDisplayInRect:

drawRect三部曲

  1. 获取上下文
  2. 绘制图形
  3. 渲染
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 12,733评论 6 30
  • 前言 本文只要描述了iOS中的Core Animation(核心动画:隐式动画、显示动画)、贝塞尔曲线、UIVie...
    GitHubPorter阅读 9,027评论 7 11
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 10,571评论 5 13
  • --绘图与滤镜全面解析 概述 在iOS中可以很容易的开发出绚丽的界面效果,一方面得益于成功系统的设计,另一方面得益...
    韩七夏阅读 7,903评论 2 10
  • 转载:http://www.jianshu.com/p/32fcadd12108 每个UIView有一个伙伴称为l...
    F麦子阅读 11,523评论 0 13

友情链接更多精彩内容