其实这是以前做过的一个例子,方便自己参考的代码!希望对大家也有点参考.
首先,建立一个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
相关推荐
Sketch具有绘图的基本功能。 任何人都可以轻松创建绘图iOS应用
ATSketchKit, 在 Swift 中,iOS绘图框架编写 #ATSketchKit 0.1 ATSketchKit是一个用 Swift 编写的图形/绘制框架。它可以作为一个艺术应用的基础,一个简单的签名特征或者更多inteligent图形设计应用。快速查看如果你...
用swift写的K线图,自己研究了半年,swift版本K线图,可以放大缩小,拖动,横竖版切换,要研究的自己下载一份吧,顺便给个star
另外还得磨叽一遍:LemonKit的所有代码都会推出三个版本:iOS-OC , iOS-Swift , Android 马上就会推出Android的对应版本,后续可以去安卓巴士中找到安卓对应的版本哦!! 当然也可以直接去Github上下载~ ...
用drawRect实现了一个图形验证码。喜欢的小伙伴github上star一个,持续关注哦~ github: https://github.com/shenAlexy/GraphCodeView ... ...个人微信公众号: iOSDevTeam,随时分享iOS开发干货。
swift 波形图https://github.com/Wutaotao692732757/swiftVoiceWave
CAShapeLayer 是继承与clayer的一个类,是quare2d中对图层操作最基本的一个类的扩展,通过CAShapeLayer 我们可以画出我们需要的各种图形,和UIBezierPath结合时,进行各种绘制 使用UIBezierPath绘制图形
使用简单: 1、初始化 drawMarqueeView = WQScrollLabelView(frame: CGRect(x: 0, y: 104, width: self.view.bounds.width, height: 20)) 2、设置属性 drawMarqueeView.marqueeDirection = .left ...
SwiftPlot框架是一个跨平台的库,可以让您在Swift中原生地绘制图形。 现有的Swift绘图框架(例如CorePlot)仅在iOS或Mac上运行。 SwiftPlot背后的想法是创建一个可在iOS,Mac,Linux和Windows上运行的跨平台库。
支持流畅的回弹拖动,长按十字线,捏合放大缩小等功能,主要使用了 CAShapeLayer 来绘图,相比使用 Core Graphics 和重写 drawRect 的方法更高效,占用内存更小。 GitHub 地址:...
改写了一个由OC编写的验证码
一个简单生成二维码的类,简单方便
任何人都可以轻松创建绘图iOS应用程序。 ※以下是实际使用Sketch制作的应用程序的图像。 :memo:功能笔工具到草图的橡皮擦从一开始就具有基本的绘制功能。 任何人都可以轻松创建绘图iOS应用程序。 ※以下是实际使用...
ATsketchKit 是一个用 Swift 编写的 iOS 绘图/草图框架。 它可以用作艺术应用程序、简单的签名功能或更智能的图形设计应用程序的基础。 快速浏览 如果您想快速了解该框架的实际运行情况,可以从 AppStore ...
SwiftUI中的傅立叶级数可视化 这个小应用程序使用周转周期和图表将... 我开始了这个小项目,以使自己更加熟悉SwiftUI及其绘图API。 它并不意味着是完美的SwiftUI,而且我相信可能有更好的做事方法。 任何反馈表示赞赏!
ZM_CALayerAnimation iOS绘图和动画
Swift 仿富途牛牛Mac版K线 (CAShapelayer CGMutablePath)绘制K线、鼠标事件、SnapKit适配,完美支持证券、期货、币圈等金融产品K线 ,非常的流畅,矢量绘制,占用内存少(内存稳定在30M左右),使用矢量进行填充K线 ...
图中不论每个扇形多小,都可以从指引线处将指引的数据分割开来,不会重叠。解决饼图数据显示的问题 更多内容请去看我的简书,里面详细讲解了具体的实现过程。 ... github地址: https://github.com/FireMou/DVPieChart
企业级ios应用开发实战分为三部分:基础篇(1~6章),首先介绍了传统企业级应用与iOS企业级应用的区别、iOS企业级应用程序的架构以及发布方法,然后详细讲解了iOS的开发框架、Objective-C语法的核心要素、Xcode集成...
iOS照片编辑器功能裁剪添加图像-贴纸-添加带有颜色的文字绘制颜色缩放和旋转对象删除对象保存到照片并共享酷动画iOS摄影编辑器功能裁剪添加图像-贴纸-添加文本带有颜色的绘图缩放和旋转objects删除对象保存到照片并...