在后台加载gif图像?

Posted

技术标签:

【中文标题】在后台加载gif图像?【英文标题】:Loading gif image in background? 【发布时间】:2015-06-18 07:33:30 【问题描述】:

描述/我尝试过的内容

我导入了一个库,它可以让我将图像精美地异步加载到我的 UITableView (https://github.com/natelyman/SwiftImageLoader) 中。问题是它不支持 gif。因此,如果需要,我做了 case 语句来独立检索 gif 并使用另一个库显示 gif。

问题

现在的问题是,每当我尝试加载 gif 时,滚动变得非常不稳定。

问题

有人可以帮我解决这个问题吗?它是否涉及将其放在后台线程上?如果有,怎么做?

代码

if let url = NSURL(string: arrayByVotes[indexPath.row].objectForKey("thumbnail") as NSString) 

        let imageURL = arrayByVotes[indexPath.row].objectForKey("thumbnail") as NSString

        if (imageURL.lowercaseString.rangeOfString("gif") != nil) 

                    cell.thumbnail.image = UIImage.animatedImageWithAnimatedGIFURL(url)


         else 

            ImageLoader.sharedLoader.imageForUrl(arrayByVotes[indexPath.row].objectForKey("thumbnail") as NSString, completionHandler:(image: UIImage?, url: String) in

                cell.thumbnail.image = image
            )

        

    

【问题讨论】:

为什么要从主队列调度到主队列? 这只是我尝试过的:)。它没有用。我将对其进行编辑并将其排除在外。我的坏 【参考方案1】:

可能同时在内存中有许多 gif 图像会影响滚动的性能。尝试从不可见的单元格中删除图像,并仅在单元格出现时添加图像。一个好的方法是 UITableViewDelegate 中的 tableView(_:willDisplayCell:forRowAtIndexPath:)

【讨论】:

以上是关于在后台加载gif图像?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Glide 显示 GIF 文件(图像加载和缓存库)

在后台运行 php shell_exec 时显示加载栏或 gif

预加载、缓存 gif 图像以避免在 React Native 中闪烁

Gif 图像(来自 url)未在 uiimage 视图中加载

加载 Jpg/Gif/Bitmap 并转换为 Bitmap

jQuery 自动完成:如何显示动画 gif 加载图像