如何解决UITableViewCell 中的 Swift 模糊图像运行不流畅
我想要做的是显示一个包含来自网络的模糊图像的列表。这适用于我的自定义 UITableViewCell 中的这段代码
func blurImage(image:UIImage,imageView: UIImageView) {
dispatchQueue.global(qos: .background).async {
let inputimage = CIImage(image: image)
let originalOrientation = image.imageOrientation
let originalScale = image.scale
let filter = CIFilter(name: "CIGaussianBlur")
filter?.setValue(inputimage,forKey: kCIInputimageKey)
filter?.setValue(15.0,forKey: kCIInpuTradiusKey)
let outputimage = filter?.outputimage
var cgImage:CGImage?
if let outputimage = outputimage{
cgImage = self.context.createCGImage(outputimage,from: (inputimage?.extent)!)
}
dispatchQueue.main.async {
if let cgImageA = cgImage{
imageView.image = UIImage(cgImage: cgImageA,scale: originalScale,orientation: originalOrientation)
}
}
}
}
问题是模糊计算需要一些时间,并且在 BG 线程上的所有想法滚动都没有那么快和平滑,好像我根本没有模糊效果。
有没有办法让它运行更流畅或显示占位符图像,直到准备好再次绘制模糊图像以实现平滑滚动?
解决方法
步骤 1) 不要将 qos: .background 用于用户启动的任务。文档说:后台任务在所有任务中的优先级最低。当您的应用在后台运行时,将此类分配给您用来执行工作的任务或调度队列。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。