效果如图:
通过Graphics绘制,使用只需要两行代码:
let j = XCDigitView(frame: CGRect(x: 250, y: 720, width: 100, height: 200))
j.value = 0
下载完整代码:
https://download.csdn.net/download/dolacmeng/85445384
实现思路:
就是完整绘制一个8字,每一画根据当前显示的数字,决定这一画的颜色,举例绘制最上面一横:
// 第一横
func render1(context:CGContext) {
if (value == 0 || value == 2 || value == 3 || value == 5 || value == 6 || value == 7 || value == 8 || value == 9) {
context.setFillColor(colorT.cgColor)
}else {
context.setFillColor(colorF.cgColor)
}
context.move(to: XCPoint(x: 3.25, y: 3))
context.addLine(to: XCPoint(x: 10.25, y: 3))
context.addLine(to: XCPoint(x: 11.75, y: 1.5))
context.addLine(to: XCPoint(x: 10.25, y: 0))
context.addLine(to: XCPoint(x: 3.25, y: 0))
context.addLine(to: XCPoint(x: 1.75, y: 1.5))
context.closePath()
context.fillPath()
}
其中XCPoint是坐标转换方法,具体看源代码。