У меня есть вид галереи фотографий, которые загружаются из Интернета, поэтому я использовал EGOImageView от Enormego.Я заметил, что когда я прокручивал свой просмотр таблицы после того, как изображения были в кеше, прокрутка зависала.Я сразу обнаружил, что когда изображение было извлечено с жесткого диска с return [UIImage imageWithContentsOfFile:cachePathForKey(key)];
, оно работало в главном потоке, поэтому я добавил операцию в NSOperationQueue.Это уменьшило отставание вдвое, но прокрутка все еще заикалась.Пройдя код, я заметил, что в методе успеха
- (void)imageLoaderDidLoad:(NSNotification*)notification {
if(![[[notification userInfo] objectForKey:@"imageURL"] isEqual:self.imageURL]) return;
UIImage* anImage = [[notification userInfo] objectForKey:@"image"];
self.image = anImage;
[self setNeedsDisplay];
if([self.delegate respondsToSelector:@selector(imageViewLoadedImage:)]) {
[self.delegate imageViewLoadedImage:self];
}
}
комментирование self.image = anImage;
полностью избавилось от лага (но, очевидно, у меня нет изображения).И, насколько я могу судить, если я хочу изменить пользовательский интерфейс, это должно быть сделано в главном потоке.Есть ли способ установить изображение для EGOImageView без задержки прокрутки?
Примечание. Размер JPG составляет около 50 КБ
Спасибо