【问题标题】:How to handle images that are loading in? Swift如何处理正在加载的图像?迅速
【发布时间】:2016-11-26 19:00:08
【问题描述】:

我目前有一个应用程序,其主要焦点是由用户在集合视图中提交的图片填充的多个页面。

我正在将图像保存到缓存中,因此在初始加载后这不是问题,但页面第一次显示时,我遇到了一些问题:

1) 让图像仅在全部下载后显示而不是在全部加载之前随机显示会更好。我正在从 Firebase 存储下载我的图片。有没有办法做到这一点?

2) 我的单元格上有代表 firebase 数据的标签,但在加载图片之前显示这些数字/标签显然很愚蠢。如何处理?

3)当当前用户将图像提交到单元格时,让图像等待发送到 firebase 存储然后返回看起来很愚蠢,所以我让它立即将该单元格的图像设置为所选图片,但是然后当图像加载时,图像消失,然后加载图片。

我认为这是因为在我的图像缓存中我需要:

func loadImageUsingNSCache(urlString: String){

  self.image = nil

在开头。所以它在加载开始时将其设置为零,然后发送图片。

我尝试将 self.image = nil 放在我的 cellForRow 中,但在我把它放在这里之前,我仍然遇到图片闪烁/出现在错误位置的问题。

任何关于这些的指导将不胜感激。我不知道这些是否需要成为单独的问题,但它们似乎紧密相关,可以组合在一起。

【问题讨论】:

    标签: ios swift caching firebase-storage


    【解决方案1】:

    对于 1 和 2,您可以创建一个调度组,将所有下载添加到该组并在完成时收到通知。这样您就可以实现一些加载屏幕,然后同时显示所有数据。

    至于3,我不知道你的缓存是如何实现的,但我很确定任何像样的缓存引擎都会将上传和下载的图像视为不同的图像(即使它在技术上是同一张图片)。
    一种让它工作的肮脏方法是在上传时像你已经在做的那样把图片放在那里,然后在后台下载它并在没有动画的情况下刷新图像。用户不会注意到,您的缓存将被更新。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-19
      • 1970-01-01
      相关资源
      最近更新 更多