我正在编写一个应用程序,以便用户可以在 UIImageView 上绘图
他还可以捏它来放大/缩小。
我已经实现了 UNDO 功能。
所以每次用户画笔画或捏图片时,我都会保存 UIImage 和框架:
ImageWithFrame *imageWithFrame = [[ImageWithFrame alloc]
initWithImageAndFrame:imageViewSubject.image andFrame:imageViewSubject.frame];
[self.tabImageForUndo addObject:imageWithFrame];
我试图将整个 UIImageView 保存在我的数组中,但它不起作用,这就是我保存 UIImage 和框架的原因。
在用户单击 UNDO 按钮后,我从数组中获得了最后一个 imageWithFrame
ImageWithFrame *imageWithFrame = [self.tabImageForUndo lastObject];
我这样做:
ImageWithFrame *imageWithFrame = [self.tabImageForUndo lastObject];
self.imageViewSubject.frame = CGRectIntegral(imageWithFrame.frame);
self.imageViewSubject.image = imageWithFrame.image;
self.imageViewSubject.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self.tabImageForUndo removeLastObject];
我清除图形上下文以防万一:
UIGraphicsBeginImageContext(self.view.bounds.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextClearRect(context, self.view.bounds);
// clean up context
UIGraphicsEndImageContext();
=======================================
我的 UIImageView 出现了,我做了一个中风,我做了一个撤消,它起作用了。
在我捏了一下之后, UIImageView 被调整大小(缩小或放大),我做一个撤消,所以 UIImageView 回到它的旧框架。
但
如果我再画一个笔画,图片会变得模糊,UIImageView 会变得越来越小。
看这个视频http://tinypic.com/player.php?v=ivbkn5&s=5
我得到了同样的效果(但在整个UIImage上,这是正常的,因为UIImage已经被笔画重绘了)
它已由另一个用户上传,来自这篇文章:CGContextStrokePath not working when zooming and drawing images
但我不认为其问题的根源与我的有关。
请注意,如果我不进行捏合,它可以完美地工作,所以我认为问题是当我在捏合手势后设置旧框架时。
我希望我足够清楚。
提前非常感谢:)