задержка загрузки изображений в AQGridView в Objective-C - PullRequest
0 голосов
/ 21 февраля 2012

В моем приложении у меня есть корневое представление, которое является видом сетки. Я загружаю изображения в ячейки gridview. У меня проблемы с загрузкой изображений. Как только я запустил приложение, через секунду появятся пустые ячейки без изображений, когда изображения загружаются в ячейки. Есть ли способ решить эту проблему. Ниже мой код.

UIImage *defaultImage = [UIImage imageNamed:@"addEmployee.png"];
if (!employee.imageName) {
    return defaultImage;
}

  if ([_imageCache objectForKey:employee.imageName]) {
      return [_imageCache objectForKey:employee.imageName];
  }

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^ {
    UIImage *image = [UIImage imageWithContentsOfFile:[self  imagePath:employee.imageName]];
    dispatch_async(dispatch_get_main_queue(), ^ {
        if (image) {
            [_imageCache setObject:image forKey:employee.imageName];
            cell.imageView.image = image;
        } else {
            [_imageCache setObject:defaultImage forKey:employee.imageName];
            cell.imageView.image = defaultImage;
            return;
        }
    });
});

 return cell.imageView.image;

}

1 Ответ

0 голосов
/ 22 февраля 2012

Загрузка изображений требует времени, нет способа сделать это мгновенно.Ваш код кажется разумным, вы загружаете изображения из основного потока, чтобы он не блокировал пользовательский интерфейс, и кэшировали их после загрузки.Единственный способ сделать это быстрее - это загрузить меньше изображений или сделать их меньше.

...