Реализация NSUndoManager в рисовании с использованием UIGraphics - PullRequest
0 голосов
/ 19 июня 2019

Я рисую поверх изображения с помощью UIGraphics.Я реализую NSUndoManager и хочу отменить в обратной последовательности, пока я рисую, но отмена удаляет все чертежи.

В моем методе рисования я регистрируюсь с этой строкой

[[undoObject prepareWithInvocationTarget:self] performUndoWithObject:context withLastpoint:to andFirstPoint:from];

, и этот метод запускается при отмене

-(void)performUndoWithObject:(CGContextRef )context withLastpoint:(CGPoint)previousLastPoint andFirstPoint:(CGPoint)previousFirstPoint
{
    CGContextSetBlendMode(context, kCGBlendModeClear);

    CGContextMoveToPoint(context, previousFirstPoint.x, previousFirstPoint.y);
    CGContextAddLineToPoint(context, previousLastPoint.x, previousLastPoint.y);
    CGContextStrokePath(context);
    _drawingView.image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
}

-(void)undoButtonClicked
{
        if([undoObject canUndo])
    {
        [undoObject undo];
    }
}
...