2010-11-23 66 views
1

好吧,所以我有一個問題,我需要檢查用戶是否更改了image和imageView中的圖像。如果沒有,那麼應用程序不需要重新保存一堆東西,它被改變,那麼它應該保存。所以基本上,這只是爲了優化代碼,因爲在保存時我將四個圖像(loRes,loResThumb,hiRes和hiResthumb)寫入磁盤,並且需要一點時間。檢查UIImageView的圖像是否已更改

我想我可能會嘗試通過將圖像保存爲NSDATA,當用戶進入編輯模式,然後當用戶退出時,檢查並查看包含在UIIMageView中的NSDATA是否與我之前臨時保存的NSDATA相同。這會工作還是他們的更好的方式,比如檢查UIImagePicker是否已被調用(不一定意味着圖像已更改,但至少比每次都節省更多)。

任何提示讚賞。謝謝!

+0

你是從一個預設的默認圖像開始的,你知道每次都是一樣的嗎? – DerekH 2010-11-23 15:56:51

+0

不需要。用戶可以將圖像更改爲任何他或她想要的內容,然後將其保存到磁盤,然後從磁盤中抓取並在再次查看特定頁面時插入到UIImageView中。所以我需要知道用戶是否改變了顯示的圖像,而不管之前有什麼圖像。說得通? – Glitch 2010-11-23 16:27:11

回答

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