• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

IOSSWIFT基本画图教程

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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)//关闭路径
        
        
        
        
        
        
    }
    
    
}

 

效果图

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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap