每次在屏幕上点击并拖动时,是否可以将新的UIBezierPath对象添加到数组,以便可以撤消它?

时间:2018-12-13 05:29:50

标签: ios swift core-graphics

每当用户在屏幕上拖动手指以绘制图形时,我都尝试向元组数组中添加 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对象添加到数组中,从而使单击撤消按钮将删除用户所做的最后笔划的全部?

如果需要的话,我可以张贴所有的班级代码。

0 个答案:

没有答案