• iOS高级-QuartzCore框架-2D绘图


    一、理论知识




    二、画线段
    1.新建一个类MJLineView,拖一个UIView,Class为MJLineView
    2.在drawRect:方法里画图

    -(void)drawRect:(CGRect)rect
    {
    //1.获得图形上下文
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    
    //2.拼接图形(路径)
    //设置一个起点(之所以在参数中传上下文是为了把点存到上下文中)
    CGContextMoveToPoint(ctx,10,10);
    //添加一条线段到点(100,100)
    CGContextAddLineToPoint(ctx,100,100);
    //再添加一条线段[会从(100,100)继续画]
    CGContextAddLineToPoint(ctx,150,40);
    //3.显示所绘制的东西
    CGContextStrokePath(ctx);//空心
    // CGContextFillPath(ctx); //实心
    }

    三、画形状(三角形,矩形等)
    1.新建一个类MJShapeView,拖一个UIView,Class为MJShapeView
    2.在drawRect:方法里画图

    -(void)drawRect:(CGRect)rect
    {
       draw4Rect();
    }
    //画四边形(缺点:只能画水平的四边形,不能画斜的)
    void draw4Rect()
    {
    //1.获得上下文
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    
    //2.画矩形
    CGContextAddRect(ctx,CGRectMake(10,10,100,100));
    
    //3.显示所绘制的东西
    CGContextStrokePath(ctx);
    }
    //画三角形
    void drawTriangle()
    {
    //1.获得上下文
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    
    //2.画三角形
    CGContextMoveToPoint(ctx,0,0);
    CGContextAddLineToPoint(ctx,100,100);
    CGContextAddLineToPoint(ctx,150,80);
    
    //关闭路径(连接起点和最后一个点)
    CGContextClosePath(ctx);
    //3.显示所绘制的东西
    CGContextStrokePath(ctx);
    }

    四、画圆和圆弧
    二、画线段
    1.新建一个类MJCircleView,拖一个UIView,Class为MJCircleView
    2.在drawRect:方法里画图

    //在view第一次显示到屏幕上的时候会调用一次
    -(void)drawRect:(CGRect)rect
    {
    
    }
    
    //画圆/椭圆
    void drawCircle()
    {
    //1.获得上下文
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    
    //2.画椭圆(如果都相等则为圆)
    CGContextAddEllipseInRect(ctx,CGRectMake(50,10100,50));
    
    //CGContextSetLineWidth(ctx,10); //如果设置这个,就变成了圆环
    
    //3.显示所绘制的东西
    CGContextStrokePath(ctx);
    }
    
    //画圆弧
    void drawArc()
    {
    //1.获得上下文
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    
    //2.画圆弧
    //CGContextAddArc(ctx,圆心的x,圆心的y,半径,开始角度,结束角度, 
    顺时针0或逆时针1);
    CGContextAddArc(ctx,100100500,M_PI,1);
    
    //3.显示所绘制的东西
    CGContextStrokePath(ctx);
    }

    五、画文字和图片
    1.新建一个类MJTextImageView,拖一个View,Class设置为MJTextImageView
    2.实现drawRect:方法

    -(void)drawRect:(CGRect)rect
    {
    
       drawText();
    }
    //画文字(用OC方法画文字不需要上下文,已经封装好了)
    void drawText()
    {
    //1.画文字
    NSString *str = @"哈哈哈哈Good morning hello"//设置字体颜色
    NSMutableDictionary *attrs = [NSMutableDictionary dictionary];
    attrs[NSForegroundColorAttributeName] = [UIColor redColor];
    [str drawInRect:CGRectMake(50,50,100,100) withAttributes:nil];
    //2.显示所绘制的东西
    CGContextStrokePath(ctx);
    }
    //画图片(用OC方法画图片不需要上下文,已经封装好了)
    void drawText()
    {
    //1.取得图片
    UIImage *iamge = [UIImage imageNamed:@"me"];
    //2.画
    [image drawInRect:CGRectMake(50,50,100,100)];//会填充整个rect
    PS:drawAsPatternInRect:方法可以画格子花纹
    //3.显示所绘制的东西
    CGContextStrokePath(ctx);
    }
  • 相关阅读:
    CSP游戏 4
    CSP 交通规划
    CSP 地铁修建
    CSP 通信网络
    CSP URL映射
    CSP 权限查询
    CSP Markdown
    CSP JSON 查询
    SQL里的子查询
    SQL里的操作符
  • 原文地址:https://www.cnblogs.com/marshall-yin/p/4745720.html
Copyright © 2020-2023  润新知