TableView中的图像未显示和延迟加载

时间:2015-03-03 22:10:25

标签: ios objective-c xcode

我有一个image,我希望将其显示为cell UITableViewController中的默认图片。由于某种原因,它没有显示出来。

cell.myImageView.image = [UIImage imageNamed:@"R1.jpg"];

1。)这可能是什么问题? 2.)有时下载需要时间,如果是这样,我如何实现延迟加载,以便它同时下载和显示图像?

2 个答案:

答案 0 :(得分:0)

使用afnetworking uitools。它具有延迟加载imageview并完美地与tableview一起使用。还具有占位符图像支持和缓存支持。 https://github.com/AFNetworking/AFNetworking/tree/master/UIKit%2BAFNetworking

修改:将占位符图片添加到您的应用源文件。

  

好答案编辑:

有几件事要检查本地图片无法加载的原因:

  • 您的图片可能已损坏。
  • 您应该将图像添加到资源。转到:目标 - > "构建阶段" - > "复制捆绑资源"这也是你的形象。如果是,请删除并重新添加。
  • 清理并构建project.time to time xcode就是这样的。
  • UIImage *tempImage=[UIImage imageNamed:@"R1.jpg"];检查这个' tempImage'为null或为空。这有助于解决您的问题所在(加载资源或在uitableview上显示)。
  • 检查tableview cellforRow方法,以防您的单元格为空或您的单元格的参与错误。
  • 检查tableview cellforRow方法cell.myImageView可以为null。 (这意味着你的手机出错了)
  • 有时,Objective c不会使用点语法设置属性。试试[cell.myImageView setImage:]方法。
  • 检查您的图像视图是否可见。如果您遇到约束冲突,Autolayout可以将其大小调整为0.

Afnetworking流程:https://github.com/AFNetworking/AFNetworking下载 您将只使用UIKit + AFNetworking / UIImageView + AFNetworking.h-.m文件,但它具有来自主afnetworking文件夹的referances。检查referances并添加你需要的东西。

将UIImageView + AFNetworking.m导入到您设置单元格图像的类中。

然后你可以使用:

[cell.myImageView setImageWithURL:(NSURL*) placeholderImage:[UIImage imageNamed:@"R1.jpg"]];

答案 1 :(得分:-2)

有一些很酷的库解决了你的问题。

其中一个是SDWebImage

只需将其添加到您的项目中,然后在tableviewcontroller的实现文件中导入UIImageView + WebCache.h。

在viewDidLoad,viewWillAppear或init中创建一个URL数组,并通过调用

将它们加载到tableView:cellForRowAtIndexPath:方法的单元格中
[cell.myImageView sd_setImageWithURL:[arrImageURLs objectAtIndex:indexPath.row]]

[NSURL fileURLWithPath:path2image]获取网址