美文网首页
iOS :Quartz2D - 直线绘制

iOS :Quartz2D - 直线绘制

作者: 骑行怪状 | 来源:发表于2016-09-06 00:21 被阅读74次
绘制
  • Quartz 2D 是一个二维绘图引擎,同时支持iOS 和 Mac系统
  • Quartz 2D 能完成的工作:
1、绘制图形: 线条、三角形、矩形、圆和弧等;
2、绘制文字;
3、绘制,生成图片(图像);
4、读取,生成PDF;
5、截图,裁剪图片;
6、自定义 UI 控件(普通的 UI 控件无法使用 UIkit 框架实现,可以使用 Quartz 2D 技术将控件内部的结构画出来,自定义控件的样子,例如五角星⭐️)。

图像上下文:“画板”

  • 图形上下文(Graphics Context): 是一个 CGContextRef 类型的数据;
  • 图行上下文的作用:
1、保存绘制信息,绘图状态;
2、决定绘制的输出目标(绘制到什么地方去?):输出目标可以是PDF文件、Bitmap(位图)或者显示器的窗口上;
3、相同的一套绘图序列,指定不同的 Graphics Context,就可将想吐的图像绘制到不同的目标。

绘制流程

图形上下文类型

  • Bitmap Graphics Context
  • PDF Graphics Context
  • Window Graphics Context
  • Layer Graphics Context

自定义 View

  • 新建一个类,继承自 UIview
  • 实现 - (void)drawRect:(CGRect)rect 方法(只有在这个方法里,才能获取图像上下文,和View 相关联),然后在这个方法中:
1、取得跟当前 view 相关联的图像上下文;
2、绘制相应的图形内容;
3、利用图形上下文将绘制的所有内容渲染显示到 view 上面



绘制效果

绘制直线

方法一:开发中不常用

    //1、获取图像的上下文
   CGContextRef ctx = UIGraphicsGetCurrentContext();
    // 2、绘制描述路径
    CGMutablePathRef path =   CGPathCreateMutable();
    // 3、绘制路径的起点
    CGPathMoveToPoint(path, NULL, 50, 50);
    CGPathAddLineToPoint(path, NULL, 200, 200);
    //把路径添加到上下文
    CGContextAddPath(ctx, path);
    //4、 渲染上下文
    CGContextStrokePath(ctx);


方法二:

    // 获取上下文 本身封装的方法,路径封装了
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    //描述路径
    //添加起点
    CGContextMoveToPoint(ctx, 50, 50);
    //添加直线
    CGContextAddLineToPoint(ctx, 200, 200);
    //渲染上下文
    CGContextStrokePath(ctx);

方法三:开发建议使用

    // UIkit 自己封装的绘制功能 贝塞尔路径绘制
    // 创建路径
    UIBezierPath *path = [UIBezierPath bezierPath];
    // 路径起点
    [path moveToPoint:CGPointMake(50, 50)];
    // 添加线到
    [path addLineToPoint:CGPointMake(200, 200)];
    // 渲染路径
    [path stroke];

相关文章

  • Quartz2D

    Quartz2D Quartz2D是二维绘图引擎,同时支持iOS和Mac系统。可以绘制图形,绘制文字,绘制/生成图...

  • iOS :Quartz2D - 直线绘制

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

  • Quartz2D学习笔记

    Quartz2D Quartz2D是一个二维绘图引擎,iOS和Mac都支持 我们可以用来: 绘制图形 绘制文字 绘...

  • iOS中Quartz2d的简单使用

    Quartz2D 一、基本绘制: 画直线 画曲线 画矩形 3.1 画普通矩形: 3.2 画圆角矩形: 3.3 指定...

  • Quartz2D

    一、Quartz2D基本概念 1、Quartz2D是一个二维图形绘制引擎,支持iOS环境和Mac OS X环境 ...

  • IOS 直线绘制

    //1.创建贝塞尔路径的实例 UIBezierPath*path = [UIBezierPathbezierPat...

  • iOS--Quartz2D(上)

    一、Quartz2D基本概念 1、Quartz2D是一个二维图形绘制引擎,支持iOS环境和Mac OS X环境 2...

  • iOS之QuartZ 2D 绘图(一)

    Quartz2D Quartz2D是苹果封装的一个库,针对iOS和os系统绘制不同的类型的制图方式 图形上下文(一...

  • Objective-C ios图形各种线条绘制

    IOS 图形绘制 绘制直线 矩形绘制 三角形绘制 任意弧形绘制 圆形绘制 绘制的属性 虚线的绘制 UIView d...

  • Quartz2D

    Quartz2D Quartz2D概述 Quartz2D可以完成什么:绘制图形:线,三角形,圆,椭圆等等绘制文字(...

网友评论

      本文标题:iOS :Quartz2D - 直线绘制

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