Aksine Dizin yolunu yakalamanız gerekir hücreyi yakalayan daha sonra kullanarak geri hücreyi almak:
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
Bu şekilde, hücre geri nil alırsınız ekran ve görüntünün kapalı şimdi ise Yanlış hücre üzerinde ayarlanmayacak.
dispatch_async()
'inizden sonra eklemeniz gereken bir şey de cell.imageView.image=somePlaceholderImage
.
Örn .:
if (![[NSFileManager defaultManager] fileExistsAtPath:[path stringByAppendingPathComponent:@"image.png"]])
{
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
dispatch_async(queue, ^{
NSString *url=[pat stringByAppendingPathComponent:@"comments.txt"];
NSString *u=[NSString stringWithContentsOfFile:url encoding:NSUTF8StringEncoding error:nil];
NSURL *imageURL=[NSURL URLWithString:u];
NSData *image=[NSData dataWithContentsOfURL:imageURL];
[image writeToFile:[pat stringByAppendingPathComponent:@"image.png"] atomically:YES];
dispatch_sync(dispatch_get_main_queue(), ^{
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
cell.imageView.image=[UIImage imageWithContentsOfFile:[pat stringByAppendingPathComponent:@"image.png"]];
[cell setNeedsLayout];
NSLog(@"Download");
});
});
cell.imageView.image=[UIImage imageNamed:@"placeholder"];
}
else
{
NSLog(@"cache");
cell.imageView.image=[UIImage imageWithContentsOfFile:[pat stringByAppendingPathComponent:@"image.png"]];
}
Cevabınız için teşekkürler ... ama, lütfen bir örnek kod verebilir misiniz? – blackhawk4152
Cevabımı – hypercrypt
teşekkürler, dostum! ne istedim – blackhawk4152