我只想画一条封闭的路径,就像在边框内一样。
我已经在下面完成了代码,可以从洪水填充算法中找到一条封闭的路径
下面是封闭的,我只想在此封闭路径内绘制
if !closePath.isEmpty {
closePath.close()
let context = UIGraphicsGetCurrentContext()!
context.setBlendMode(.copy)
context.addPath(closePath.cgPath)
context.setLineCap(.round)
context.setAlpha(1.0)
context.setLineWidth(1)
context.setStrokeColor(UIColor.red.cgColor)
context.strokePath()
}
触摸时
override func draw(_ rect: CGRect) {
drawFloodFill(path: UIBezierPath())
// Drawing code
let context = UIGraphicsGetCurrentContext() // get your current context
context?.saveGState() // save the current state
context?.setBlendMode(.sourceIn) // change blend mode to DestinationOut (R = D * (1-Sa))
if touchEnd == true {
UIColor.orange.set()
} else {
UIColor.yellow.set();
}
drawingPath.lineWidth = 10
drawingPath.lineCapStyle = .round
drawingPath.stroke()
context?.restoreGState() // restore state of context
}
我已经使用混合模式作为Source In。
绘制时间太长了。