在我的应用中,我有一个根视图,它是一个gridview。我在gridview单元格中加载图像。我在加载图像时遇到问题。一旦我启动应用程序,一秒钟后会有图像加载到单元格中的空白单元格中没有图像。有没有办法解决这个问题。以下是我的代码。
UIImage *defaultImage = [UIImage imageNamed:@"addEmployee.png"];
if (!employee.imageName) {
return defaultImage;
}
if ([_imageCache objectForKey:employee.imageName]) {
return [_imageCache objectForKey:employee.imageName];
}
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^ {
UIImage *image = [UIImage imageWithContentsOfFile:[self imagePath:employee.imageName]];
dispatch_async(dispatch_get_main_queue(), ^ {
if (image) {
[_imageCache setObject:image forKey:employee.imageName];
cell.imageView.image = image;
} else {
[_imageCache setObject:defaultImage forKey:employee.imageName];
cell.imageView.image = defaultImage;
return;
}
});
});
return cell.imageView.image;
}
答案 0 :(得分:0)
加载图片需要时间,没有办法让它瞬间完成。你的代码看似合理,你正在从主线程加载图像,所以它不会阻止UI,并在加载后缓存它们。使速度更快的唯一方法是加载较少的图像或使图像变小。