Я пытаюсь добавить UIBezierPath к массиву кортежей каждый раз, когда пользователь проводит пальцами по экрану, чтобы сделать рисунок.
Я инициализирую свои переменные
var arrayListFingerBezierPath: [(UIBezierPath, CGColor)] = []
var arrayListFingerPathUndoStore: [(UIBezierPath, CGColor)] = []
и в прикосновениях Начало У меня есть линии
fingerPath?.move(to: currentTouchPoint)
arrayListFingerBezierPath.append((fingerPath!, strokeColor))
setNeedsDisplay()
В моих прикосновенияхПереведено У меня есть строки
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 в массив каждый раз, когда пользователь касается и перетаскивает экран, таким образом, что нажатие кнопки отмены приведет к удалениювесь последний штрих, сделанный пользователем?
Я могу опубликовать весь код класса, если он вам нужен.