每当用户在屏幕上拖动手指以绘制图形时,我都尝试向元组数组中添加 UIBezierPath 。
我初始化变量
var arrayListFingerBezierPath: [(UIBezierPath, CGColor)] = []
var arrayListFingerPathUndoStore: [(UIBezierPath, CGColor)] = []
并且在 touchesBegin 中,我有台词
fingerPath?.move(to: currentTouchPoint)
arrayListFingerBezierPath.append((fingerPath!, strokeColor))
setNeedsDisplay()
在我的 touchesMoved 中,我有句行
fingerPath?.addLine(to: currentTouchPoint)
arrayListFingerBezierPath.append((fingerPath!, strokeColor))
setNeedsDisplay()
在 touchesEnded 中,我有几行
fingerPath?.addLine(to: currentTouchPoint)
arrayListFingerBezierPath.append((fingerPath!, strokeColor))
setNeedsDisplay()
我正在将fingerPath
添加到数组中,以便可以撤消和重做路径。
我的撤消功能是这样的
func undo()
{
if(!arrayListFingerBezierPath.isEmpty)
{
arrayListFingerPathUndoStore.append(arrayListFingerBezierPath.removeLast())
setNeedsDisplay()
}
}
是否每次用户在屏幕上触摸和拖动时都可以将新的UIBezierPath对象添加到数组中,从而使单击撤消按钮将删除用户所做的最后笔划的全部?
如果需要的话,我可以张贴所有的班级代码。