在后台加载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图像?的主要内容,如果未能解决你的问题,请参考以下文章
在后台运行 php shell_exec 时显示加载栏或 gif
预加载、缓存 gif 图像以避免在 React Native 中闪烁