zoukankan      html  css  js  c++  java
  • IOS 绘图

    1.绘制线条

    override func drawRect(rect: CGRect) {

            // Drawing code

            var context = UIGraphicsGetCurrentContext()

            CGContextMoveToPoint(context, 100.0, 100.0)

            CGContextAddLineToPoint(context, 100, 200)

            CGContextSetLineWidth(context, 5.0)     //set line width

            CGContextSetRGBStrokeColor(context, 1, 0, 0, 1.0) //set line color

            CGContextStrokePath(context)

        }

     override func drawRect(rect: CGRect) {

            // Drawing code

            var context = UIGraphicsGetCurrentContext()

            var path = CGPathCreateMutable()

            CGPathMoveToPoint(path, nil, 100, 100)

            CGPathAddLineToPoint(path, nil, 100, 200)

            CGContextAddPath(context, path)

            CGContextStrokePath(context)

           

        }

    2.绘制矩形

    override func drawRect(rect: CGRect) {

            // Drawing code

            var context = UIGraphicsGetCurrentContext()

            CGContextAddRect(context, CGRect(x: 100, y: 100, 200, height: 200))

            CGContextSetRGBFillColor(context, 1, 0, 0, 1.0) //set fill color

            CGContextFillPath(context)

            

            //添加边框

            CGContextSetRGBStrokeColor(context, 0, 0, 1, 1)

            CGContextSetLineWidth(context, 5)

            CGContextStrokeRect(context, CGRect(x: 100, y: 100, 200, height: 200))

        }

    3.绘制圆弧

      override func drawRect(rect: CGRect) {

            // Drawing code

            var context = UIGraphicsGetCurrentContext()

            //顺时针 180度圆弧

            CGContextAddArc(context, 150, 300, 100, 0, 3.14, 0);

        

            CGContextSetRGBStrokeColor(context, 0, 0, 1, 1)

            CGContextSetLineWidth(context, 5)

            CGContextStrokePath(context)

        }

     4.填充圆

    override func drawRect(rect: CGRect) {

            // Drawing code

            var context = UIGraphicsGetCurrentContext()

            //填充圆

            CGContextAddArc(context, 150, 300, 100, 0, 3.14*2, 0)

            CGContextFillPath(context)

        }

    override func drawRect(rect: CGRect) {

            // Drawing code

            var context = UIGraphicsGetCurrentContext()

            //填充圆

            CGContextAddEllipseInRect(context, CGRect(x: 200, y: 200, 200, height: 200))

    //        CGContextFillPath(context)

            

            CGContextSetRGBStrokeColor(context, 0, 0, 1, 1)

            CGContextSetLineWidth(context, 5)

            CGContextStrokePath(context)

            

        }

    5.绘制图片

    required init?(coder aDecoder: NSCoder) {

            super.init(coder: aDecoder)

            uiImage =  UIImage(named: "walle.png")!.CGImage

            

        }

        // Only override drawRect: if you perform custom drawing.

        // An empty implementation adversely affects performance during animation.

        override func drawRect(rect: CGRect) {

            // Drawing code

            var context = UIGraphicsGetCurrentContext()

            CGContextSaveGState(context)

            CGContextTranslateCTM(context,0, 220)

            CGContextScaleCTM(context, 1, -1)

            CGContextDrawImage(context, CGRect(x: 0, y: 0, 300, height: 200), uiImage)

            CGContextRestoreGState(context)

        }

        var uiImage:CGImageRef?

     6.绘制进度圆饼

    var ctx = UIGraphicsGetCurrentContext()

            

              var r = rect.width/2

            

            CGContextAddArc(ctx, r,r ,r, 0, 3.141592653*2*r, 0)

            

            CGContextAddLineToPoint(ctx, r, r)

            

            CGContextSetRGBFillColor(ctx, 0.7, 0.7, 0.7, 1)

            

            CGContextFillPath(ctx)

            

          

            

            CGContextAddArc(ctx, r,r ,r, 0, 3.141592653*2*_progressValue, 0)

            

            CGContextAddLineToPoint(ctx, r, r)

            

            CGContextSetRGBFillColor(ctx, 0, 0, 1, 1)

            

            CGContextFillPath(ctx)

            

    7.矩阵操作

    //1.获取图形上下文

        CGContextRef ctx = UIGraphicsGetCurrentContext();

        

        //2.描述路径

        UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(-50, -50, 200, 100)];

        

        [[UIColor redColor]set];

        

        //平移

        CGContextTranslateCTM(ctx, 100, 50);

        

        //缩放

        CGContextScaleCTM(ctx, 0.5, 0.5);

        

        //旋转

        CGContextRotateCTM(ctx, M_PI_4);

        

        //3.添加路径

        CGContextAddPath(ctx, path.CGPath);

        

        //4.渲染上下文

        CGContextFillPath(ctx);

    8.图片水印

      //加载图片

        UIImage *image = [UIImage imageNamed:@"123.png"];

        

        //开启位图上下文

        UIGraphicsBeginImageContextWithOptions(image.size, NO, 0);

    //    //获取位图上下文

    //    CGContextRef ctx = UIGraphicsGetCurrentContext();

        //描述路径

        

        //渲染上下文

        

        //1.绘制原生图片

        [image drawAtPoint:CGPointZero];

        

        //2.给原生图片添加文字

        NSString *str = @"乐乐专用";

        NSMutableDictionary *dicM = [NSMutableDictionary dictionary];

        

        dicM[NSFontAttributeName] = [UIFont systemFontOfSize:38];

        dicM[NSForegroundColorAttributeName] = [UIColor blueColor];

        [str drawAtPoint:CGPointMake(150, 50) withAttributes:dicM];

        

        //3.生成一张图片,我们从上下文获取

        

        UIImage *img = UIGraphicsGetImageFromCurrentImageContext();

        _imageView.image = img;

        

        UIGraphicsEndImageContext();

           

  • 相关阅读:
    在scrapy的spiders文件中设置请求时间间隔
    Python中map和reduce函数
    正则表达式
    eslint下的rules一些规则(转:备用)
    谷歌云设置xshell登录
    (过期)活动赠送的国外云服务器VPS【速度极慢,适合小白练手】
    关于服务器的那些事~~~
    call()和appy()的区别及常用场景
    javascript中使用this关键字的大总结
    懵懵懂懂、迷迷糊糊
  • 原文地址:https://www.cnblogs.com/PJXWang/p/4915478.html
Copyright © 2011-2022 走看看