【发布时间】:2010-05-03 18:07:13
【问题描述】:
我有一个需要滚动许多图像的应用程序。
因为我不能加载所有的图片,并把它保存在内存中,所以我懒加载它们。
问题是如果我滚动得太快,会显示“黑色图像”(无法加载的图像)。
这是延迟加载代码:
int currentImageToLoad = [self calculateWhichImageShowing] + imageBufferZone;
[(UIView*)[[theScrollView subviews] objectAtIndex:0]removeFromSuperview];
PictureObject *pic = (PictureObject *)[imageList objectAtIndex:currentImageToLoad];
MyImageView *iv = [[MyImageView alloc] initWithFrame:CGRectMake(currentImageToLoad * 320.0f, 20.0f, 320.0f, 460)];
NSData *imageData = [NSData dataWithContentsOfFile:[pic imageName]];
[iv setupView:[UIImage imageWithData: imageData] :[pic imageDescription]];
[theScrollView insertSubview:iv atIndex:5];
[iv release];
这是 scrollViewWillBeginDecelerating 里面的代码:
[NSThread detachNewThreadSelector:@selector(lazyLoadImages) toTarget:self withObject:nil];
【问题讨论】:
标签: iphone lazy-loading