Установка свойства изображения в UIImageView вызывает значительное отставание
Позвольте мне рассказать вам о проблеме, с которой я столкнулся, и о том, как я пытался ее решить. У меня есть UIScrollView, который загружает подпредставления как прокрутка слева направо. Каждое подпредставление имеет 10-20 изображений размером около 400x200. Когда я прокручиваю от просмотра к представлению, я испытываю некоторое отставание.
Проведя расследование, я обнаружил, что после разгрузки всех видов и повторной попытки задержка исчезла. Я понял, что причиной задержки было синхронное кэширование изображений. Поэтому я создал подкласс UIImageView, который загружал изображения асинхронно. Код загрузки выглядит следующим образом (self.dispatchQueue
возвращает очередь последовательной отправки).
- (void)loadImageNamed:(NSString *)name {
dispatch_async(self.dispatchQueue, ^{
UIImage *image = [UIImage imageNamed:name];
dispatch_sync(dispatch_get_main_queue(), ^{
self.image = image;
});
});
}
Однако после изменения всех моих UIImageViews на этот подкласс я все еще испытывал задержку (я не уверен, был ли он уменьшен или нет). Я свел причину проблемы кself.image = image;
, Почему это вызывает такое большое отставание (но только при первой загрузке)?
Пожалуйста, помогите мне. знак равно