• IOS SWIFT基本画图教程


    OS SWIFT基本画图教程

    其实这是以前做过的一个例子,方便自己参考的代码!希望对大家也有点参考.

    首先,建立一个Swift类,继承UIView这个类,然后重写

    func drawRect(rect: CGRect)

    其次,获取画笔的上下文

    var context:CGContextRef =  UIGraphicsGetCurrentContext();//获取画笔上下文
    
    CGContextSetAllowsAntialiasing(context, true) //抗锯齿设置


    下面我们就可以编写画图形的代码了

    1 画点

    //画点

    CGContextFillEllipseInRect(context, CGRectMake(75, 75, 50, 50))

        
    2 画直线
            

    //画直线
    CGContextSetLineWidth(context, 5) //设置画笔宽度
    CGContextMoveToPoint(context, 10, 20);        
    CGContextAddLineToPoint(context, 100, 100);        
    CGContextStrokePath(context)

    3 画圆

     //画圆
    CGContextAddEllipseInRect(context, CGRectMake(50,50,100,100)); //画圆
    CGContextStrokePath(context) //关闭路径
            
    //通过画弧画圆
    //弧度=角度乘以π后再除以180
    //角度=弧度除以π再乘以180
    CGContextSetStrokeColorWithColor(context, UIColor.redColor().CGColor) //设置画笔颜色
    CGContextAddArc(context, 100, 100, 50, 0, CGFloat(270*M_PI/180), 0) //画弧
    CGContextStrokePath(context)//关闭路径

            
            
    4 画字符串

    //画字符串
    var str:NSString = "我是吴统威";
    str.drawAtPoint(CGPointMake(100, 200), withAttributes: nil);

            
    5 画图片

     //画图片
    CGContextSetShadow(context, CGSizeMake(3, 3),10)
    var img:UIImage = UIImage(named: "8")!;
    img.drawAtPoint(CGPointMake(50, 250));
    CGContextSetShadow(context, CGSizeMake(0, 0), 0)

         

    6 使用PATH画图 

    //使用path画图
     let p1:CGMutablePathRef = CGPathCreateMutable();
     CGPathMoveToPoint(p1, nil, 50, 250)
     CGPathAddLineToPoint(p1, nil, 50, 350)
     CGContextAddPath(context, p1)
     CGContextStrokePath(context)//关闭路径

    这里主要是介绍基本的用法,其他复杂的图形,可以参照API文档,去调用相关的方法,画出自己想要的图形

    附完整代码:

    //
    //  DrawingView.swift
    //  study
    //
    //  Created by Tonway on 15/2/2.
    //  Copyright (c) 2015年 Tonway. All rights reserved.
    //
    
    import UIKit
    
    class DrawingView: UIView {
        
        
        // 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:CGContextRef =  UIGraphicsGetCurrentContext();//获取画笔上下文
            
            
            CGContextSetAllowsAntialiasing(context, true) //抗锯齿设置
            
            //画点
            //CGContextSetLineWidth(context, 50);
            CGContextFillEllipseInRect(context, CGRectMake(75, 75, 50, 50))
            
            CGContextSetLineWidth(context, 5) //设置画笔宽度
            
            //画直线
            CGContextMoveToPoint(context, 10, 20);
            CGContextAddLineToPoint(context, 100, 100);
            CGContextStrokePath(context)
            
            //画圆
            CGContextAddEllipseInRect(context, CGRectMake(50,50,100,100)); //画圆
            
            CGContextStrokePath(context) //关闭路径
            
            
            //通过画弧画圆
            //弧度=角度乘以π后再除以180
            //角度=弧度除以π再乘以180
            CGContextSetStrokeColorWithColor(context, UIColor.redColor().CGColor) //设置画笔颜色
            
            CGContextAddArc(context, 100, 100, 50, 0, CGFloat(270*M_PI/180), 0) //画弧
            
            
            CGContextStrokePath(context)//关闭路径
            
            
            
            //画字符串
            var str:NSString = "我是吴统威";
            
            str.drawAtPoint(CGPointMake(100, 200), withAttributes: nil);
            
            //画图片
            
            CGContextSetShadow(context, CGSizeMake(3, 3),10)
            
            var img:UIImage = UIImage(named: "8")!;
            
            img.drawAtPoint(CGPointMake(50, 250));
            
            
            // CGContextDrawImage(context, CGRectMake(100, 250, 100, 100),img.CGImage)
            
            CGContextSetShadow(context, CGSizeMake(0, 0), 0)
            
            //使用path画图
            let p1:CGMutablePathRef = CGPathCreateMutable();
            
            CGPathMoveToPoint(p1, nil, 50, 250)
            
            CGPathAddLineToPoint(p1, nil, 50, 350)
            
            CGContextAddPath(context, p1)
            CGContextStrokePath(context)//关闭路径
            
            
            
            
            
            
        }
        
        
    }

    效果图

    swift绘图教程

    本文属于吴统威的博客原创文章,转载时请注明出处及相应链接:http://www.wutongwei.com/front/infor_showone.tweb?id=85

  • 相关阅读:
    操作系统概述
    18 文本处理
    17 正则表达式(重点)
    16 归档和备份
    15 查找文件
    博客园图片折叠
    EF6学习笔记十五:调试EF框架源码
    EF6学习笔记十四:上下文管理
    Sqlserver和LocalDB创建数据库时默认字符集不一样
    EF6学习笔记十三:基础知识完结,零碎问题补缺
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/4946305.html
Copyright © 2020-2023  润新知