【问题标题】:How to convert a batch of PFFiles to UImages?如何将一批文件转换为图像?
【发布时间】:2015-11-12 10:34:29
【问题描述】:

在我的应用程序中,图像存储在解析中。然后将它们检索到 PFFiles 数组中,但是我必须使用这种需要时间的方法将它们单独转换为 UIImages。

  PFFile *picture = [pictureArray objectAtIndex:indexPath.row];
[picture getDataInBackgroundWithBlock:^(NSData *data, NSError *error) {

    myimage = [UIImage imageWithData:data];

}];

所以我需要在解析中存储图像并检索它们,我不想单独转换所有这些图片,我希望一次完成所有这些。这些是我目前看到的选项:

  1. 创建一个循环,循环上面的代码以将所有PFFiles 转换为UIImages 并将它们添加到一个准备访问的数组中。

  2. 寻找更好的方式来转换或使用PFFiles

  3. 上传 NSData 或其他要解析的内容,这样我就不必转换 PFFiles

谁能为我的问题提供建议或解决方案?当我在UICollectionView 中展示大量图像时,我希望它们一次全部加载,而不是单独加载它们,我希望数组中的图像准备好,所以我可以调用:

cell.myimage.image = [pictureArray objectAtIndex:indexPath.row];

所有图片都会被加载,而不是等待PFFIles被转换等等。

【问题讨论】:

  • 同步转换一堆图片会导致性能和内存问题。

标签: ios objective-c parsing uiimage pffile


【解决方案1】:

如果你想展示它们,你应该使用PFImageView,它可以自行加载。它是UIImageView 的子类,非常漂亮。

例子:

PFImageView *creature = [[PFImageView alloc] init];
creature.image = [UIImage imageNamed:@”1.jpg”]; // placeholder image
creature.file = (PFFile *)file;
[creature loadInBackground];

如果您想下载它们用于其他用途,请查看此answer

【讨论】:

  • 我只是继承它,我不需要添加任何额外的代码?
  • @Josh 你不需要自己继承它。它已经是子类。我添加了一个简单的代码来解释如何以编程方式实现这一目标。
  • 这会立即设置PFFile,还是需要加载时间设置PFFile
  • PFFile 位于解析服务器上,因此无论何时您希望展示它,都需要加载时间。这种方式提供优雅的加载,允许您将占位符放在图像视图中并自行处理下载。如果您想要批量下载,您可以查看另一个问题的链接(尽管通常与图片有关)。
  • 我已经下载了文件,我只是不想浪费时间转换它。所以我在本地有PFFile,我想立即显示它,而不是花时间加载它。我该怎么做?
猜你喜欢
  • 2023-03-30
  • 2012-06-29
  • 2014-07-17
  • 1970-01-01
  • 2020-10-29
  • 2023-03-23
  • 2020-06-09
  • 2022-11-10
  • 2020-12-02
相关资源
最近更新 更多