Я сбит с толку, что никто не мог ответить на это ...
Итак, в конце концов я понял, как добиться того же эффекта , точного , который используется в реальном магазине приложений, в отношении способа загрузки / отображения значков.
Возьмите пример проекта LazyTableImages и внесите несколько простых изменений.
Зайдите в контроллер корневого представления и удалите все проверки, касающиеся прокрутки и / или замедления таблицы в cellForRowAtIndexPath
Удалить все вызовы loadImagesForOnScreenRows и, таким образом, удалить этот метод.
Зайдите в IconDownload.m и измените метод startDownload на , а не , загрузите асинхронное изображение, а вместо этого загрузите синхронизацию в фоновом потоке. Удалите весь код в startDownload и добавьте следующее, чтобы оно выглядело так:
- (void)startDownload
{
NSOperationQueue *queue = [NSOperationQueue new];
NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(loadImage) object:nil];
[queue addOperation:operation];
[operation release];
[queue release];
}
Затем добавьте loadImage, например:
- (void)loadImage
{
NSData *imageData = [[NSData alloc] initWithContents OfURL:[NSURL URLWithString:appRecord.imageURLString]];
self.apprecord.appIcon = [UIImage imageWithData:imageData];
[imageData release];
[self performSelectorOnMainThread:@selector(notifyMainThread) withObject:nil waitUntilDone:NO];
}
Затем добавьте notifyMainThread следующим образом:
- (void)notifyMainThread
{
[delegate appImageDidLoad:self.indexPathInTableView];
}
Готово! Запустите его, и вы увидите точное поведение магазина приложений: больше не нужно ждать загрузки изображений до тех пор, пока не прекратится прокрутка, и больше не будет ждать отображения изображений, пока не прекратится прокрутка или пока пользователь не уберет палец с экрана.
Изображения загружаются, как только ячейка готова к отображению, и изображение отображается сразу после загрузки, точка.
Извините за любые опечатки, я не вставлял это из своего приложения, я набрал его, так как я сейчас далеко от своего Mac ...
Во всяком случае, я надеюсь, что это поможет вам всем ...