入门篇demo中以3种方式绘制一条直线
注意:绘制图形的方法要写在控件类中的draw(_ rect: CGRect) 方法中,而不是控制器中
<h5>完成绘图的过程</h5>
绘制好图形 -> 保存在上下文中 -> 显示到目标中
<h6>方式1:最完整的写法
①创建上下文 ②描述图形路径③保存路径到上下文④绘图图形
</h6>
<pre>
// 上下文
let ctx = UIGraphicsGetCurrentContext()
// 描述路径
let path = CGMutablePath()
path.move(to: CGPoint(x: 50, y: 50))
path.addLine(to: CGPoint(x: 200, y: 200))
// 保存到上下文中
ctx?.addPath(path)
// 开始绘制
ctx?.strokePath()
</pre>
<h6>方式2:封装路径的写法
①创建上下文②通过上下文描述路径③绘制图形
</h6>
<pre>
// 上下文
let ctx = UIGraphicsGetCurrentContext()
ctx?.move(to: CGPoint(x: 10, y: 10))
ctx?.addLine(to: CGPoint(x: 200, y: 200))
ctx?.strokePath()
</pre>
<h6>方式3:封装上下文的写法
①创建贝塞尔路径②描述路径③绘制路径
</h6>
<pre>
// 贝塞尔路径
let b = UIBezierPath()
b.move(to: CGPoint(x: 100, y: 100))
b.addLine(to: CGPoint(x: 200, y: 200))
// 绘制
b.stroke()
</pre>
ps:
万变不离其宗,写法虽然不同,但核心原理是相同的(只是封装的更加易用而已)
网友评论