美文网首页
Quartz2D的使用

Quartz2D的使用

作者: Coulson_Wang | 来源:发表于2017-06-11 17:37 被阅读0次

一、图形上下文

一个CGContextRef类型的属性,用于:

  1. 保存绘图信息、绘图状态
  2. 决定绘制的输出目标

类型:

  1. Bitmap Graphics Context
  2. PDF Graphics Context
  3. Window Graphics Context
  4. Layer Graphics Context
  5. Printer Graphics Context

</br>

二、利用Quartz2D自定义控件的流程

前提条件:
  1. 确保具有图形上下文
  2. 图形上下文必须跟view相关联
步骤与流程:
  1. 新建一个类,继承自UIView
  2. 实现-(void)drawRect:(CGRect)rect方法(系统调用该方法会自动创建一个与View相关联的上下文),在该方法中
  3. 取得跟当前view相关联的图形上下文
  4. 绘制相应的图形内容
  5. 利用图形上下文将绘制的内容渲染显示到view上面

</br>

三、drawRect方法

调用时机:

系统自动调用。当view显示的时候调用,调用时机在父控件的viewWillAppear:方法和viewDidAppear:方法两者的调用间隔之间

参数含义:

rect表示当前view的frame

步骤:
  1. 获取上下文
    调用UIGraphicsGetCurrentContext()方法获取当前上下文
  2. 绘制路径
  • 调用[UIBezierPath bezierPath]方法获取贝塞尔路径
  • 描绘路径
  1. 把绘制的内容保存到上下文中
    调用CGContextAddPath()方法
  2. 把上下文的内容显示到view上(渲染到view的layer上)
    调用stroke方法或fill方法
快速步骤:

直接对UIBezierPath对象调用strokefill方法(本质上是自动调用了方法,获取上下文并把路径添加到了上下文中)

</br>

四、上下文状态栈

上下文的状态可以存放到上下文状态栈中,通过调用CGContextSaveGState()方法即可把当前上下文的状态放到栈顶保存起来。
调用CGContextRestoreGState()方法即可读取状态栈中上下文的状态,取得处于栈顶的上下文状态。

</br>

五、矩阵操作

在对把路径添加到上下文之前,可以对上下文进行平移、旋转、缩放操作。分别调用
CGContextTranslateCTM()
CGContextRotateCTM()
CGContextScaleCTM()
三个方法即可

</br>


使用UIKit进行绘图

绘制文字
  1. 可以对NSString对象调用drawAtPoint:withAttributes:,将字符串绘制到View的指定位置,并带有指定的属性。
  2. 可以对NSString对象调用drawInRect:withAttributes:,将字符串绘制到指定区域,并带有指定的属性。与上一个方法的区别在于会自动换行。
绘制图片
  1. 可以对UIImage对象调用drawAtPoint:,将图片按照原始图片大小绘制到View的指定位置
  2. 可以对UIImage对象调用drawInRect:,将图片填充到指定区域中
  3. 可以对UIImage对象调用drawAsPatternInRect:,将图片以平铺的方式绘制到指定区域
注意点

使用UIKit框架中的方法进行绘制也需要上下文,因此也应该在drawRect:方法中绘制

</br>


相关文章

  • 手把手教你通过Quartz2D制作彩色涂鸦板和手势解锁

    我们已经学习完了Quartz2D的一些基本的用法,在实际开发过程中,经常使用Quartz2D,可以帮助我们少使用苹...

  • Quartz2D简单的实战举例

    一、quartz2D介绍 二维绘图引擎,支持iOS与Mac系统。 二、quartz2D使用场景: 功能很多,着重说...

  • iOS Quartz2D的使用(绘制图形)

    最近在自己的项目中需要对拍照的图片加上水印效果,使用到了Quartz2D 什么是Quartz2D? Quartz2...

  • iOS用户头像的圆形图片裁剪常用方法

    使用图层剪切 通过Quartz2D将图形绘制出一张圆形图片 通常的解决的办法就是通过Quartz2D将图形绘制出一...

  • 进阶!Quartz2D对UIImage的常用操作

    昨天写了一篇文章quartz2D 的从零到一学习使用(附赠源码),是关于quartz2D比较基础用法的总结,今天讲...

  • Quartz2D

    Quartz2D 简介 Quartz2D是二维(平面)的绘图引擎(经包装的函数库,方便开发者使用。也就是说苹果帮我...

  • Quartz2D

    使用Quartz2D,通过路径方法绘制图形的时候,一定要注意内存释放问题: 小知识:利用Quartz2D生成一张裁...

  • Quartz2D学习记录

    Quartz2D 概述及作用 Quartz2D 的 API 是纯 C 语言的,Quartz2D 的 API 来自于...

  • iOS学习笔记08-Quartz2D绘图

    一、Quartz2D简单介绍 在iOS中常用的绘图框架就是Quartz2D,Quartz2D是Core Graph...

  • Quartz2D

    * Quartz2D的简介 * 使用简介 * 绘制图像 * 坐标系的平移、旋转、缩放 * 绘制...

网友评论

      本文标题:Quartz2D的使用

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