• Quartz2D-二维画图引擎 、自己定义UI控件


    //
    //  MyDraw.m
    //  绘图
    
    #import "MyDraw.h"
    
    @implementation MyDraw
    
    //Quartz2D  是一个二维绘图引擎
    //自己定义UI控件
    //裁剪图片
    
    - (void)drawRect:(CGRect)rect {
        
        draw4Rect();
        //drawTriangle();
        
    }
    
    void draw4Rect()
    {
        //获得图形上下文
        CGContextRef ctx = UIGraphicsGetCurrentContext();
        
        //绘图形
        CGContextAddRect(ctx, CGRectMake(10, 10, 100, 100));
        
        //绘制图形
        //CGContextStrokePath(ctx);
        
        
        //设置主要的颜色
        CGContextSetRGBFillColor(ctx, 0, 0, 1, 1);
        
        //结合UI 能够更简单的设置颜色
        [[UIColor redColor]setFill];
        
        //set :同一时候设置实心 空心颜色
        //setStroke 设置空心颜色
        // setFill 设置实心颜色
        [[UIColor whiteColor]set];
        
        //实的图形
        CGContextFillPath(ctx);
    }
    void drawTriangle()
    {
    
        // Drawing code
        //1.获得图形上下文
        CGContextRef ctx = UIGraphicsGetCurrentContext();
        
        //设置头尾部样式
        CGContextSetLineCap(ctx, kCGLineCapRound);
        
        //2.拼接图形
        CGContextMoveToPoint(ctx, 10, 10);
        
        //加入一条线段到
        CGContextAddLineToPoint(ctx, 100, 100);
        
        
        //设置转折点的样式
        //CGContextSetLineJoin(ctx, kCGLineJoinBevel);
        CGContextSetLineJoin(ctx, kCGLineJoinRound);
        
        CGContextMoveToPoint(ctx, 200, 190);
        
        CGContextAddLineToPoint(ctx, 150, 40);
        CGContextAddLineToPoint(ctx, 110, 60);
        //设置线条的宽度
        
        CGContextSetLineWidth(ctx, 10);
        
        
        //设置颜色
        CGContextSetRGBStrokeColor(ctx, 1, 0, 0, 1);
        
        
        //CGContextAddLineToPoint(ctx, 10, 10);
        
        //连接起点和终点
        //CGContextClosePath(ctx);
        //CGContextMoveToPoint(ctx, 20, 20);
        
        //3.渲染显示到view 上面
        //以空心的形式画出来
        CGContextStrokePath(ctx);//仅仅记录当前的颜色状态  我们要是向让两根线条不一样
        //那么我们须要渲染两次
        //分开几个图形 多渲染几次就能够了
        
    }
    
    
    //设置颜色
    
    
    
    @end

  • 相关阅读:
    蓝桥杯程序设计 剪格子
    sql中 1<> 1=1的用处
    form表单的6种提交方式
    js中添加监听,判断是什么事件
    angular iFrame加载资源问题
    报表往子报表里传入list
    struts 文件上传
    获取运行时的泛型类型
    Dao层抽取BaseDao
    SSH整合总结
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8876624.html
Copyright © 2020-2023  润新知