检查UIImageView的图像是否已更改

时间:2010-11-23 15:47:53

标签: iphone uiimageview uiimagepickercontroller

好的,所以我有一个问题,我需要检查用户是否更改了里面的图像和imageView。如果没有那么应用程序不需要重新保存一堆东西,它被更改然后它应该保存。所以基本上这只是为了优化代码,因为在保存时我正在向磁盘写入四个图像(loRes,loResThumb,hiRes和hiResthumb)并且需要一段时间。

我想我可以通过在用户进入编辑模式时将图像保存为NSDATA来尝试这样做,然后当用户退出时,检查并查看UIIMageView中包含的NSDATA是否与我之前暂时保存的NSDATA相同。这样做还是更好的方式,比如检查是否已经调用了UIImagePicker(并不一定意味着图像被改变了,但至少它更接近于每次都保存)。

任何提示赞赏。谢谢!

1 个答案:

答案 0 :(得分:2)

尝试创建UIImageView的子类,如果设置了image,则“标记”脏值。

@interface myImageView : UIImageView {
    BOOL _dirty; // set to NO in init
}

- (BOOL) hasChanged;

@end

@implementation


- (void) setImage: (UIImage *)image
{
    [super setImage:image];
    _dirty = YES;
}

- (BOOL) hasChanged
{
   if (!_dirty) return NO;
   _dirty = NO;
   return YES;
}
@end