本篇文章是对绘图技术的一些技术点进行总结
<h6>1.设置线条颜色,宽度,样式</h6>
<pre>
// 上下文
let ctx = UIGraphicsGetCurrentContext()
ctx?.move(to: CGPoint(x: 50, y: 50))
ctx?.addLine(to: CGPoint(x: 200, y: 200))
// 设置线条颜色
ctx?.setStrokeColor(UIColor.red.cgColor)
// 设置线条宽度
ctx?.setLineWidth(10)
// 设置线条样式(圆头,切面)
ctx?.setLineCap(.butt)
ctx?.strokePath()
</pre>
<h6>2.绘制曲线
曲线也是一条线,具有起点和终点,与绘制直线不同的是需要设置一个控制点来改变起点和终点的路径,control参数就是控制点
</h6>
<pre>
// 上下文
let ctx = UIGraphicsGetCurrentContext()
// 初始化起点
ctx?.move(to: CGPoint(x: 50, y: 50))
// 设置终点以及控制点
ctx?.setLineWidth(2)
ctx?.addQuadCurve(to: CGPoint(x : 200, y: 50), control: CGPoint(x: 100, y: -45))
// 绘图
ctx?.strokePath()
</pre>
<h6>3.绘制弧形
center:以这个点为圆心
radius:半径
startAngle:开始角度
endAngle:结束角度
clockwise:true逆时针 false顺时针
</h6>
<pre>
let ctx = UIGraphicsGetCurrentContext()
ctx?.addArc(center: CGPoint(x: 100, y: 100), radius: 50, startAngle: 0, endAngle: CGFloat(M_PI), clockwise: false)
ctx?.strokePath()
</pre>
<h6>4.绘制圆角矩形</h6>
<pre>
let b1 = UIBezierPath(roundedRect: CGRect(x: 50, y: 50, width: 100, height: 100), cornerRadius: 5)
b1.stroke()
</pre>
<h6>5.绘制扇形</h6>
<pre>
// 设置圆心
let center = CGPoint(x: 100, y: 100)
// 设置以center为圆心的弧形
let b = UIBezierPath(arcCenter: center, radius: 50, startAngle: 0, endAngle: CGFloat(M_PI_2), clockwise: true)
// 添加连接圆心的直线
b.addLine(to: center)
// 填充(fill方法默认会关闭连线,所以可以忽略 b.closePath())
b.fill()
</pre>
网友评论