我正在绘制一个绘图应用程序,我可以用手指触摸绘图。现在我正在尝试实现清除,撤消和重做功能。
在我的视图控制器中,我有两个用于“clearAll”和“Undo”的IBAction方法。我创建了一个名为drawing.h和.m的自定义类,其中我编写了用于处理触摸事件的函数。以下是我的功能。
问题是撤消和重做工作,但在撤消和重做中绘制的所有行中的最后一个颜色选择。
答案 0 :(得分:1)
I Have Mistake In Touch End Method In Array Last Array Not Remove on last object
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
UIGraphicsBeginImageContext(self.tempimage.bounds.size);
[self.tempimage.layer renderInContext:UIGraphicsGetCurrentContext()];
rawImage = UIGraphicsGetImageFromCurrentImageContext();
[self.tempimage.image drawInRect:CGRectMake(0, 0, tempimage.frame.size.width, tempimage.frame.size.height) blendMode:blendmode alpha:opacity];
UIGraphicsEndImageContext();
#if PUSHTOFILE
lineIndex++;
[self performSelectorInBackground:@selector(writeFilesBG)
withObject:nil];
#else
NSDictionary *lineInfo = [NSDictionary dictionaryWithObjectsAndKeys:rawImage, @"IMAGE",nil];
[pointsArray addObject:lineInfo];
UIBezierPath *_path=[pointsArray lastObject];
[_stack addObject:_path];
[pointsArray removeLastObject];
[self.tempimage setNeedsDisplay];
#endif
}