zoukankan      html  css  js  c++  java
  • Quartz2D

    Quartz 2D 是一个二维绘图引擎,同时支持iOS和Mac系统

    用法:

    1. 新建一个类,继承自 UIView
    2. 实现 - (void)drawRect:(CGRect)rect 方法,然后在这个方法中
    /*
     作用:专门用来绘图
     什么时候调用:当view现实的时候调用
    */
    - (void)drawRect:(CGRect)rect {
        
    //    NSLog(@"%s", __func__);
    //    NSLog(@"%@", NSStringFromCGRect(rect));
        
        // 1.在drawRect方法中系统已经帮你创建了一个跟view相关联的上下文
        // 只要获取上下文就行了.
        
        
        // 1. 获取上下文
        CGContextRef ctx = UIGraphicsGetCurrentContext();
        // 2.描述路径
        UIBezierPath *path = [UIBezierPath bezierPath];
        
        // 画曲线
        // 2.1设置起点
        [path moveToPoint:CGPointMake(50, 280)];
        // 2.2添加一根曲线到某一个点
        [path addQuadCurveToPoint:CGPointMake(250, 280) controlPoint:CGPointMake(50, 50)];
        // 3.把路径添加到上下文
        CGContextAddPath(ctx, path.CGPath);
        // 4.把上下文的内容显示到View上
        CGContextStrokePath(ctx);
    
    }
    

      或者更简单点

    - (void)drawRect:(CGRect)rect {
        
    
        UIBezierPath *path = [UIBezierPath bezierPath];
        
        [path moveToPoint:CGPointMake(50, 280)];
        [path addQuadCurveToPoint:CGPointMake(250, 280) controlPoint:CGPointMake(50, 50)];
        [path stroke];
    
    }
    

      注:只有在 - (void)drawRect:(CGRect)rect;方法中才有用

     

  • 相关阅读:
    20111013 18:32 女友刁钻无聊问题之标准答案
    20111013 17:40 学ACM有什么用
    typedef用法(1)
    深入C++的new(20111115 15:08 )
    用四个0算二十四点
    20111010 20:14 HDU 4021 (15数码)
    pku3020 Antenna Placement (解法1)
    C++箴言:理解typename的两个含义
    20110907 00:16 ubuntu 如何修改当前用户名
    vc6.0中添加msdn 20111105 11:52
  • 原文地址:https://www.cnblogs.com/menglingxu/p/6516108.html
Copyright © 2011-2022 走看看