zoukankan      html  css  js  c++  java
  • 【ios系列】-Quartz 2D常用方法介绍

    Quartz 2D基本介绍

    Quartz 2D是一个二维绘图引擎
    能够,绘制图形 : 线条三角形矩形圆弧等,绘制文字,绘制生成图片(图像),读取生成PDF,截图裁剪图片,自定义UI控件(最为重要)等,

    利用Quartz2D自定义view(自定义UI控件)的步骤

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

    2:实现- (void)drawRect:(CGRect)rect方法(系统会自动调用),然后在这个方法中:

          1:取得跟当前view相关联的图形上下文
          2:绘制相应的图形内容
          3:利用图形上下文将绘制的所有内容渲染显示到view上面
    

    使用步骤:

    1:获得图形上下文
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    
    2:拼接路径(下面代码是搞一条线段)
    CGContextMoveToPoint(ctx, 10, 10);
    CGContextAddLineToPoint(ctx, 100, 100);
    
    3:绘制路径
    CGContextStrokePath(ctx);//空心
    // CGContextFillPath(ctx);//实心
    

    常用的方法:

    新建一个起点
    void CGContextMoveToPoint(CGContextRef c, CGFloat x, CGFloat y)
    
    添加新的线段到某个点
    void CGContextAddLineToPoint(CGContextRef c, CGFloat x, CGFloat y)
    
    添加一个矩形
    void CGContextAddRect(CGContextRef c, CGRect rect)
    
    添加一个椭圆
    void CGContextAddEllipseInRect(CGContextRef context, CGRect rect)
    
    添加一个圆弧,规则圆弧
    //xy:圆心
    //radius:半径
    //startAngle:开始角度
    //endAngle:结束角度
    //clockwise:圆弧的伸展方向,0 :顺时针,1:逆时针
    void CGContextAddArc(CGContextRef c, CGFloat x, CGFloat y,
    CGFloat radius, CGFloat startAngle, CGFloat endAngle, int clockwise)
    
    贝塞尔曲线,不规则曲线
    CGContextAddQuadCurveToPoint(CGContextRef c, CGFloat cpx, CGFloat cpy, CGFloat x, CGFloat y)
    
    合并路径,连接两个点
    CGContextClosePath(ctx);
    
    
    设置颜色
    [[UIColor blackColor] set];
    
    设置线条宽度
    CGContextSetLineWidth(ctx, 10);
    
    将当前的上下文copy一份,保存到栈顶(那个栈叫做”图形上下文栈”)
    void CGContextSaveGState(CGContextRef c)
    
    将栈顶的上下文出栈,替换掉当前的上下文
    void CGContextRestoreGState(CGContextRef c)
    
    用view的setNeedsDisplay或者setNeedsDisplayInRect:时会重新调用drawRect:方法
  • 相关阅读:
    java网络爬虫爬虫小栗子
    浮点数精确表示
    使用yum安装CDH Hadoop集群
    判断奇数,java陷阱
    Long型整数,缄默溢出
    java基础知识点
    java常用指令
    Codeforces Round #275 (Div. 2) D
    区间dp的感悟
    Codeforces Round #386 (Div. 2) C D E G
  • 原文地址:https://www.cnblogs.com/fengtengfei/p/4356050.html
Copyright © 2011-2022 走看看