На мой взгляд, у меня есть представление изображения, данные для просмотра изображения поступают из URL-адреса, изображения составляют около 1-3 МБ. Если пользователь прокручивает, я хочу загрузить следующее изображение. Все работает нормально, если прокручивать медленно, но когда я прокручивал быстро, я хочу отменить предыдущую операцию и начать с нового URL-адреса.
Для экс. если пользователь проводит 4 раза, если операции для 2-го и 3-го изображений находятся посередине, я хочу отменить их и начать загрузку 4-го изображения
Но теперь вместо 4-го изображения я получаю первое 2-е изображение, за которым следует 3-е, а затем появляется 4-е изображение.
Вот мой пример кода
- (void)handleSwipeLeft:(UISwipeGestureRecognizer *)aSwipeGestureRecognizer {
[BackgroundOperation cancelAllOperations]; // To cancel previous one
[self performSelector:@selector(LoadImage) withObject:nil afterDelay:0.1];
}
-(void)LoadImage
{
BackgroundOperation=[[NSOperationQueue alloc]init];
imgvww.image=[UIImage imageNamed:@"loader.png"]; // Place holder till download finishes
[BackgroundOperation addOperationWithBlock:^
{
UIImage *img=[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[[self.ItemDetails objectAtIndex:0] objectForKey:@"ImageUrl"]]]]; // Getting data from URL
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
imgvww.image=img; //Adding to image view after completion
}];
}];
}
Спасибо.
BackgroundOperation
каждый раз, когда нужно загрузить изображение (сBackgroundOperation=[[NSOperationQueue alloc]init];
)? - person Khanh Nguyen   schedule 29.08.2015