Quartz2D学习总结

  • Quartz 2D是一个二维绘图引擎,同时支持iOS和Mac系统
  • Quartz 2D能完成的工作

  1. 绘制图形 : 线条\三角形\矩形\圆\弧等

  2. 绘制文字

  3. 绘制\生成图片(图像)

  4. 读取\生成PDF

  5. 截图\裁剪图片

  6. 自定义UI控件......

  • Quartz2D在iOS开发中的价值

  利用UIKit框架提供的控件,拼拼凑凑,能搭建和现实一些简单、常见的UI界面

  但是,有些UI界面极其复杂、而且比较个性化,用普通的UI控件无法实现,这时可以利用Quartz2D技术将控件内部的结构画出来,自定义控件的样子

  其实,iOS中大部分控件的内容都是通过Quartz2D画出来的

  因此,Quartz2D在iOS开发中很重要的一个价值是:自定义view(自定义UI控件)

  • 图形上下文(Graphics Context):是一个CGContextRef类型的数据

  图形上下文的作用

  1.保存绘图信息、绘图状态

  2.决定绘制的输出目标(绘制到什么地方去?)(输出目标可以是PDF文件、Bitmap或者显示器的窗口上)

  • 自定义view的步骤

  1. 新建一个类,继承自UIView

  2. 实现- (void)drawRect:(CGRect)rect方法,然后在这个方法中

  3. 取得跟当前view相关联的图形上下文

  4. 绘制相应的图形内容

  5. 利用图形上下文将绘制的所有内容渲染显示到view上面

  为什么要实现drawRect:方法才能绘图到view上?

    因为在drawRect:方法中才能取得跟view相关联的图形上下文

    在drawRect:方法中取得上下文后,就可以绘制东西到view上

    View内部有个layer(图层)属性,drawRect:方法中取得的是一个Layer Graphics Context,因此,绘制的东西其实是绘制到view的layer上去了

    View之所以能显示东西,完全是因为它内部的layer

   drawRect:方法在什么时候被调用?

    1. 当view第一次显示到屏幕上时(被加到UIWindow上显示出来)

    2. 调用view的setNeedsDisplay或者setNeedsDisplayInRect:时

时间: 2024-07-28 17:11:52

Quartz2D学习总结的相关文章

iOS学习——Quartz2D学习(1)

本文以问答形式主要讲述Quartz2D的相关内容,参考内容是网上下载的学习视频资料. 1.什么是Quartz2D? 他是一个二维的绘图引擎,同时支持iOS和Mac系统 2.Quartz2D能完成的工作 画基本线条,绘制文字,图片,截图,自定义UIView. 3.Quartz2D在开发中的价值 当我们的控件样式极其复杂时,可以把控件内部的结构给画出画,就是自定义控件. 4.什么是图形上下文 图形上下文是用来保存用户绘制的内容状态,并决定绘制到哪个地方的. 用户把绘制好的内容先保存到图形上下文, 然

记一次Quartz2D学习(一)

经常看点 drawRect的重写  但是不知道这究竟是神马 今天开始学习这一块的东西,更确切地说是深入 早在view的时候 就经常会调用layer的maskToBounds属性,其实 重写 drawRect方法  也就是对layer的一个绘制 重写也比较简单 1 线条 1.1 下面就是简单地线条的画法:(效果如图) - (void)drawRect:(CGRect)rect { // Drawing code //获取绘制图形的上下文 CGContextRef    ctx =UIGraphic

记录一次Quartz2D学习(二)

(一)内主要就是讲了线条的绘制以及绘制状态的保存与恢复 本次就讲一些图形的画法 2 图形的绘制 2.1  三角形的绘制 :(就是绘制三条线) - (void)drawRect:(CGRect)rect { //获取绘制上下文 CGContextRef    ctx =UIGraphicsGetCurrentContext(); //设置连接处的圆角 CGContextSetLineJoin(ctx, kCGLineJoinRound); //设置颜色以及线条粗细 [[UIColor yellow

记录一次Quartz2D学习(五)

(四)内主要讲了绘制状态的保存与恢复 本次主要讲述 缩放,旋转,平移等操作 5.附加操作 5.1 旋转 TIP: 旋转操作主要是对本次渲染的图层进行旋转,旋转的中心为左上角顶点 - (void)drawRect:(CGRect)rect { //获取上下文 CGContextRef  ctx = UIGraphicsGetCurrentContext(); //设置线条的宽度 CGContextSetLineWidth(ctx, 10); //保存绘制的状态 CGContextSaveGStat

IOS学习笔记 -- Modal和Quartz2D

一. Modal1.Modal的默认效果:新控制器从屏幕的最底部往上钻,直到盖住之前的控制器为止;Modal只是改变了View的现实,没有改变rootViewController 2.常用方法1>.以Modal的形式展示控制器- (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^)(void))completion2>.关

学习笔记-quartz2D

一.简介                                                                            quartz2D是属于core Graphic框架,该框架是基于C的API.quartz2D用于绘制平面图形. 二.例程步骤 添加UIView的子类MyView,在MyView.m中实现如下方法: 1 #pragma mark 在这个方法内部进行绘图 2 - (void)drawRect:(CGRect)rect { 3 4 } 在该方法

【原】iOS学习之Quartz2D(1)

什么是Quartz2D 1.Quartz 2D 是一个二维绘图引擎,同时支持iOS和Mac系统 2.Quartz 2D 能完成的工作: 绘制图形 : 线条\三角形\矩形\圆\弧等 绘制文字 绘制\生成图片(图像) 读取\生成PDF 截图\裁剪图片 自定义UI控件 图形上下文 1.图形上下文(Graphics Context):是一个 CGContextRef 类型的数据 2.图形上下文的作用: 保存绘图信息.绘图状态 决定绘制的输出目标(绘制到什么地方去?) 相同的一套绘图序列,指定不同的 Gr

学习IOS开发UI篇--Quartz2D基本绘图

Quartz2D绘图的代码步骤 1.获得图形上下文CGContextRef ctx = UIGraphicsGetCurrentContext();2.拼接路径(下面代码是搞一条线段)CGContextMoveToPoint(ctx, 10, 10);CGContextAddLineToPoint(ctx, 100, 100);3.绘制路径CGContextStrokePath(ctx); // CGContextFillPath(ctx); 常用拼接路径函数 1.新建一个起点void CGCo

Quartz2D的学习2

1 - (void)drawRect:(CGRect)rect { 2 3 NSLog(@"drawRect"); 4 5 //获取图形的上下文 6 CGContextRef context = UIGraphicsGetCurrentContext(); 7 // CGContextMoveToPoint(context, 20, 100); 8 // CGContextAddLineToPoint(context, 200, 200); 9 // CGContextStrokePa