Как использовать Lazy Loading в Paging?

У меня есть viewController, в котором я использовал Page Control. и каждая страница имеет 4 изображения.

Я прошел Xml и в соответствии с количеством изображений, в котором я получил количество страниц pageControl (NumberOfImages/4).

Я сделал свой код, как это...

сначала я получаю URL каждого изображения и сохраняю их в массиве..

for(int i=0;i<[Array Count];i++)
{
imgString=[NSString stringWithFormat:@"%@",[Array objectAtIndex:i]];
NSLog(@"string :%@",imgString);
NSString *abc=[imgString tringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
//NSLog(@"abc :%@",abc);

NSURL *url=[NSURL URLWithString:abc];
NSLog(@"url :%@",url);

NSData *data = [NSData dataWithContentsOfURL:url];

[ImageArray addObject:[UIImage ImageWithData:data]];
}

Приведенный выше код занимает время, чтобы получить изображения с URL.и пока все не будут получены, я должен ждать..

Так что я хочу использовать Lazy Loading Here.. У меня есть пример Apple Lazy Загрузка для TableView.. но не понимаю, как использовать его с Paging??

так может кто-нибудь предложить мне, что я могу сделать для этого? любая помощь приветствуется..

1 ответ

Решение

Вы можете создать категорию для класса UIImageView и добавить несколько методов, которые позволят вам сделать следующее:

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

Сначала проверив наличие файла кэша, вы можете пропустить повторную загрузку содержимого.

При загрузке изображения в фоновом потоке ваше приложение не будет отставать в ожидании завершения загрузки контента.

Используя категорию, ваши методы будут применяться к любому UIImageView, который вы хотите использовать, и даже будут работать в режиме подкачки.

Вместо того, чтобы публиковать здесь полное кодовое решение, я собираюсь предложить вам исследовать и разработать собственное решение.

Удачи.

Другие вопросы по тегам