У меня есть приложение, требующее прокрутки множества изображений.
, поскольку я не могу загрузить все изображения и сохранить их в памяти, я их лениво загружаю.
Проблема в том, что если я прокручиваю слишком быстро, появляются «черные изображения» (изображения, которые не удалось загрузить).
это код отложенной загрузки:
int currentImageToLoad = [self calculateWhichImageShowing] + imageBufferZone;
[(UIView*)[[theScrollView subviews] objectAtIndex:0]removeFromSuperview];
PictureObject *pic = (PictureObject *)[imageList objectAtIndex:currentImageToLoad];</p>
<pre><code> 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:
</p>
<pre><code>[NSThread detachNewThreadSelector:@selector(lazyLoadImages) toTarget:self withObject:nil];