Tôi có một UITableView với các ô tùy chỉnh. Tôi tải hình ảnh không đồng bộ bằng Grand Central Dispatch. Tất cả mọi thứ hoạt động tốt, nhưng khi tôi di chuyển xuống, hình ảnh được tải trước đó được hiển thị cho đến khi hình ảnh mới được tải xuống. Đây là mã của tôi:GCD UITableView tải hình ảnh không đồng bộ, các ô sai được tải cho đến khi tải xuống hình ảnh mới
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(), ^{
cell.imageView.image=[UIImage imageWithContentsOfFile:[pat stringByAppendingPathComponent:@"image.png"]];
[cell setNeedsLayout];
NSLog(@"Download");
});
});
}
else
{
NSLog(@"cache");
cell.imageView.image=[UIImage imageWithContentsOfFile:[pat stringByAppendingPathComponent:@"image.png"]];
}
Bất kỳ đề xuất nào được đánh giá cao. P.S. Tôi sử dụng lại các ô
cảm ơn bạn đã trả lời ... nhưng, bạn có thể cung cấp một số mã mẫu không? – blackhawk4152
Cập nhật câu trả lời của tôi – hypercrypt
cảm ơn, người đàn ông! chỉ là những gì tôi muốn – blackhawk4152