首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Quartz 2D drawRect方法(iPhone)

您好!Quartz 2D 是一个由苹果公司开发的二维图形绘制引擎,它提供了一系列的绘图功能,可以在 iOS 和 macOS 上使用。drawRect 方法是 Quartz 2D 中的一个核心方法,用于绘制图形。

在 iPhone 开发中,drawRect 方法通常用于自定义视图的绘制。当需要绘制一个自定义视图时,开发者需要继承 UIView 类,并重写 drawRect 方法。在 drawRect 方法中,开发者可以使用 Quartz 2D 提供的绘图函数,来绘制所需的图形。

以下是一个简单的示例代码,演示如何使用 drawRect 方法绘制一个矩形:

代码语言:swift
复制
import UIKit

class CustomView: UIView {
    override func draw(_ rect: CGRect) {
        super.draw(rect)

        // 获取绘图上下文
        guard let context = UIGraphicsGetCurrentContext() else { return }

        // 设置绘图属性
        context.setLineWidth(2.0)
        context.setStrokeColor(UIColor.blue.cgColor)

        // 绘制矩形
        let rectangle = CGRect(x: 50, y: 50, width: 100, height: 100)
        context.addRect(rectangle)
        context.strokePath()
    }
}

在这个示例中,我们创建了一个名为 CustomView 的自定义视图,并重写了 drawRect 方法。在 drawRect 方法中,我们使用了 Quartz 2D 提供的绘图函数,绘制了一个矩形。

需要注意的是,drawRect 方法的调用时机是由系统决定的,开发者不能直接调用这个方法。当视图需要绘制时,系统会自动调用 drawRect 方法,并传入视图的绘制区域。因此,开发者只需要重写 drawRect 方法,并在方法中编写绘制代码即可。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Quartz 2D编程指南》电子签名、图片处理(水印、裁剪以及屏幕截图)、常见图形的绘制(饼图、柱状图、雪花、手势密码、画板)

    2Dquartz 2D在iOS开发中的价值 quartz 2D能完成的工作 quartz 2D绘图的基础元素:路径 quartz 2D的内存管理 2、图形上下文 1)图形上下文的作用:保持绘图的信息、...CGPointMake(100, 100) withAttributes: stringAttributes]; 4、Draws the entire image 在坐标中画出图片:- (void)drawRect...2D是一个二维绘图引擎,同时支持iOS、tvOS、macOS Quartz 2D provides low-level, lightweight 2D rendering with unmatched...图像) 3》读取、生成PDF文件 4》图片的裁截:圆形裁剪 5》自定义控件 1.2、quartz 2D在iOS开发中的价值 当使用uikit框架的普通控件无法实现需求的时候,可采用quartz 2D...技术将控件内部的结构画出来 ,自定义UI控件的样子 1.3、 quartz 2D须知 1)quartz 2D的API是纯C语言的 2)quartz 2D的API来自于Core Graphics框架

    76820

    UI进阶13 Quartz2DQuartz2D

    Quartz2D 什么是Quartz2D Quartz 2D是一个二维绘图引擎,同时支持iOS和Mac系统 Quartz 2D能完成的工作 绘制图形 : 线条\三角形\矩形\圆\弧等 绘制文字 绘制...\生成图片(图像) 读取\生成PDF 截图\裁剪图片 自定义UI控件 … … Quartz2D实例 Quartz 2D能做很多强大的事情,例如 裁剪图片 涂鸦\画板 手势解锁 报表:折线图\饼状图\柱状图...:(CGRect)rect方法,然后在这个方法中 取得跟当前view相关联的图形上下文 绘制相应的图形内容 利用图形上下文将绘制的所有内容渲染显示到view上面 drawRect: 为什么要实现drawRect...因为在drawRect:方法中才能取得跟view相关联的图形上下文 drawRect:方法在什么时候被调用?...(ctx); …… drawRect:中取得的上下文 在drawRect:方法中取得上下文后,就可以绘制东西到view上 View内部有个layer(图层)属性,drawRect:方法中取得的是一个Layer

    68830

    绘图-Core Graphics

    iOS有分多种图形上下文,其中UIView自带提供的在drawRect:方法中通过UIGraphicsGetCurrentContext获取,还有专门为图片处理的context,UIGraphicsBeginImageContext...Core Graphics Framework是一套基于C的API框架,使用了Quartz作为绘图引擎。...iOS支持两套图形API族:Core Graphics/QuartZ 2D 和OpenGL ES。前者提供了低级别、轻量级、高保真度的2D渲染。...Quart 2D 是一组二位绘图和渲染API,Core Graphic会使用到这组API 这是一个绘图专用的API族,它经常被称为QuartZQuartZ 2D。...当你子类化了一个UIView并实现了自己的drawRect方法后,一旦drawRect方法被调用,Cocoa就会为你创建一个图形上下文,此时你对图形上下文的所有绘图操作都会显示在UIView上。

    1.6K30

    iOS Quartz2D相关方法

    什么是Quartz2D?...Quartz 2D是一个二维绘图引擎,同时支持iOS和Mac系统 Quartz 2D能完成的工作 绘制图形 : 线条\三角形\矩形\圆\弧等 绘制文字 绘制\生成图片(图像) 读取\生成PDF 截图\裁剪图片...自定义UI控件 Quartz2D在iOS开发中的价值 iOS中,大部分控件都是Quartz2D绘制出来的 绘制一些系统UIKit框架中不好展示的内容,例如饼图 自定义一些控件 不添加UI控件的情况下,...View内部有个layer(图层)属性,drawRect:方法中取得的是一个Layer Graphics Context,因此,绘制的东西其实是绘制到view的layer上去了 常用方法 CGPathAddLineToPoint...这个方法主要是画一条线 但是必须指定起点 //移动画笔位置 CGPathMoveToPoint(path, &transform, 100, 50); CGPathAddLineToPoint(path

    65420

    Quartz2D复习(一)--- 基础知识 绘制线段圆弧 图片水印 截图

    1、Quartz 2D是一个二维绘图引擎,同时支持ios和Mac系统; Quart2D的API是纯C语言的,API来自于Core  Graphics框架: 2、Quartz 2D可以绘制图形(线段/三角形...: (CGRect)rect;  方法,然后在这个方法中,可以去的跟当前view相关联的图形上下文; 绘制相应的图形内容(绘制时产生的线条称为路径,路径由一个或多个线段或曲线段组成);利用图形上下文将绘制的所有内容渲染显示到...view上面    为什么要实现drawRect: 方法才能绘图到view上?    ...--》 因为在drawRect: 方法中才能取得跟view相关联的图形上下文    drawRect: 方法在什么时候被调用?     ...: 方法中取得的是一个Layer  Graphics  Context, 因此,绘制的东西其实是绘制到view的layer上去了。

    2.6K10

    UI篇-VC的生命周期以及UIView的layoutSubviews和drawRect方法

    **综上两个方法都是异步执行的,layoutSubviews方便数据计算,drawRect方便视图重绘。...UIView中方法的执行顺序大概是这样的: init 方法 >>属性的set/get 方法>> layoutSubviews(当然是要达到触发条件)>>drawRect, 使用得当可以在View的调用中起到很好的效果...drawRect 掉用是在Controller->loadView, Controller->viewDidLoad 两方法之后掉用的.所以不用担心在 控制器中,这些View的drawRect就开始画了...以上1,2推荐;而3,4不提倡 drawRect方法使用注意点: 1、 **若使用UIView绘图,只能在drawRect方法中获取相应的contextRef并绘图。...**drawRect方法不能手动显示调用,必须通过调用setNeedsDisplay 或 者 setNeedsDisplayInRect,让系统自动调该方法。强行调用也不会起作用的。

    1.9K30

    iOS开发——Core Graphics绘图

    CoreGraphics也称为Quartz 2D 是UIKit下的主要绘图系统,频繁的用于绘制自定义视图。Core Graphics是高度集成于UIView和其他UIKit部分的。...视图可以通过子视图、图层或实现drawRect方法来表现内容,如果说实现了drawRect方法,那么最好就不要混用其他方法了,如图层和子视图。...由于像素是依赖于目标的,所以2D绘图并不能操作单独的像素,我们可以从上下文(Context)读取它。 绘图就好比在画布上拿着画笔机械的进行画画,通过制定不同的参数来进行不同的绘制。...context,这个context在重写uiview的drawRect方法里调用UIGraphicsGetCurrentContext()获取 path:路径,ios绘图可以想象为你拿着一支笔去画图,...:(CGRect)rect方法 -(void)drawRect:(CGRect)rect{ [super drawRect:rect]; //获取ctx CGContextRef

    2.5K20

    iPhone页面的常用调试方法

    iPhone中调试,大体上与上文 安卓中的移动页面调试 类似,区别主要是iOS系统中的一些限制,导致某些工具无法使用。 本文基于此,简要介绍在iPhone中如何调试页面。...而对于某些需要账号授权登陆的页面,涉及到Cookie的模拟登录,可以使用这两个代理工具进行设置 在Fiddler中可以按前文安卓的配置 在Charles中也有对应的方法 ?...UIWebViewer 只是系统浏览器的一部分组建,功能不全或有所 限制 所以某些情况下可直接在手机的Safari浏览器进行查看调试,某些情况还是少不了在微信内置浏览器中进行 Safari远程调试 这个方法需要结合...与前文类似,这两种方法都能进行基础的页面信息查看,不支持HTTPS,使用spy-debugger可支持HTTPS 基于 spy-debugger 的调试 参考前文,设置好相应的HTTPS证书 ?...登陆后,访问相关页面,就可以调试webview了 方法同上,可在Mac上使用Safari来调试内置浏览器的页面,公众号,小程序等 ?

    3.4K10

    iOS学习——Quartz2D学习(1)

    Quartz2D学习(1) 本文以问答形式主要讲述Quartz2D的相关内容,参考内容是网上下载的学习视频资料。 1、什么是Quartz2D?   ...他是一个二维的绘图引擎,同时支持iOS和Mac系统 2、Quartz2D能完成的工作   画基本线条,绘制文字,图片,截图,自定义UIView. 3、Quartz2D在开发中的价值   当我们的控件样式极其复杂时...方法方法里 步骤: 1.要先自定定UIView 2.实现DrawRect方法 3.在DrawRect方法中取得跟View相关联的上下文. 4.绘制路径(描述路径长什么样). 5....把描述好的路径保存到上下文(即:添加路径到上下文) 6.把上下文的内容渲染到View 7、DrawRect方法作用?...DrawRect作用:专用在这个方法当中绘图的.只有在这个方法当中才能取得跟View相关联的上下文.

    1.1K20
    领券