其实这是以前做过的一个例子,方便自己参考的代码!希望对大家也有点参考.
首先,建立一个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
请发表评论