2010-11-23 6 views
1

Итак, у меня есть проблема, когда мне нужно проверить, изменился ли пользователь изображение внутри и изображение. Если нет, то приложение не нужно пересобирать кучу вещей, и оно изменяется, тогда оно должно сохраняться. Настолько bascically это только для того, чтобы оптимизировать код, поскольку при сохранении я пишу четыре изображения (loRes, loResThumb, hiRes и hiResthumb) на диск, и это занимает немного времени.Проверьте, было ли изменено изображение UIImageView.

Я подумал, что могу попробовать сделать это, сохранив изображение как NSDATA, когда пользователь войдет в режим редактирования, а затем, когда пользователи выйдут, проверьте и проверьте, не является ли NSDATA, содержащимся в UIIMageView, таким же, как тот, который я сохранил временно , Будет ли это работать или это их лучший способ, например, проверить, был ли 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 
Смежные вопросы