2010-11-23 18 views
1

私は、ユーザーがimageとimageViewを変更したかどうかを確認する必要があります。そうでなければ、アプリは束を再保存する必要はなく、変更された場合、保存する必要があります。基本的には、コードを最適化するだけです。保存すると、4つの画像(loRes、loResThumb、hiRes、hiResthumb)をディスクに書き込むので、少し時間がかかります。UIImageViewの画像が変更されていないか確認してください。

ユーザーが編集モードに入ったときにNSDATAとしてイメージを保存して、UIIMageViewに含まれるNSDATAが一時的に保存されたNSDATAと同じであるかどうかを確認して確認すると思った。 UIImagePickerが呼び出されたかどうかをチェックするような、より良い方法です(必ずしもイメージが変更されているとは限りませんが、少なくとも毎回保存するよりは近いです)。

ヒントありがとうございます。ありがとう!

+0

毎回同じデフォルト画像が使用されていますか? – DerekH

+0

いいえ。ユーザーは画像をディスクに保存してディスクに保存し、特定のページを再び表示するときにUIImageViewに挿入することができます。だから私は以前にどのような画像があったかに関係なく、表示されている画像を変更したかどうかを知る必要があります。意味がありますか? – Glitch

+0

だから私はこれを試した:これは、ビューが読み込まれるときに設定されます:self.oldWishImage = UIImagePNGRepresentation(self.theImageView.image);そして、これはユーザーが自分の変更を保存するときです。\t NSData * currentImage = UIImagePNGRepresentation(self.theImageView.image); if([self.oldWishImage isEqualToData:currentImage]) \t { \t \t NSLog(@ "同じ画像"); \t} \t else \t \t NSLog(@ "新しい画像");仕事をしているようだ...どんな考え? – Glitch

答えて

2

imageが設定されている場合、ダーティ値に「タグ付け」するUIImageViewのサブクラスを作成してみてください。

@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 
+0

Mac用のNSImageViewはありますか?とにかく、私はこの答えに投票します。 – AechoLiu

+0

@Toro、lol whoops。私は毎日Macを、夜間はiOSをやる。宣伝 –

関連する問題