我正在制作一个简单的绘图程序,在UIView(下面代码中的画布)中绘制一些线。这很管用。
现在我想把这些线像橡皮一样擦掉。
我不只是想在它上面画白色,因为在画布视图后面有一个背景图像,用户可以更改,所以将背景图像绘制到视图中也不起作用,因为他们可以在绘制的中途更改它。
如何在所有现有路径上画出一个像橡皮擦一样的路径?
这是我当前的绘图代码

func drawLine(fromPoint start: CGPoint, toPoint end:CGPoint, color: UIColor, width: CGFloat, canvas: UIView)
{
    let line = CAShapeLayer()
    let linePath = UIBezierPath()

    linePath.move(to: start)
    linePath.addLine(to: end)

    line.path = linePath.cgPath
    line.strokeColor = color.cgColor
    line.lineWidth = width
    line.lineJoin = kCALineJoinRound

    canvas.layer.addSublayer(line)
}

谢谢!

最佳答案

可以将stroke与模式CGBlendMode.clear一起用于擦除和
CGBlendMode.normal用于绘图

linePath.stroke(with: CGBlendMode.clear, alpha: 1.0)

10-08 09:21