我有一个应用程序需要滚动许多图像。在UIScrollView中延迟加载图像
因为我无法加载所有的图像,并将其保存在内存中,我懒加载它们。
问题是如果我滚动得太快,显示“黑色图像”(图像,无法加载)。
这是延迟加载代码: 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];