微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PinRemoteImage - 完成一张图片下载后,将另一张图片加载到 UIImageView

如何解决PinRemoteImage - 完成一张图片下载后,将另一张图片加载到 UIImageView

我正在尝试创建一个函数作为 UIImageView 的扩展,它使用 PinRemoteImage 逐步加载非渐进式图像。 传递给函数的 URL 提供了一个渐进式 PNG 图像,即使 self.pin_updateWithProgress 选项为真,它似乎也无法渐进加载。

我更改了服务器的实现,以便在将 /128 添加到图像 URL 末尾时服务器返回低分辨率图像。

然后我尝试首先将低分辨率图像(“/128”)加载到 UIImageView 中,然后是另一个 pin_setimage 将最终高分辨率图像加载到 UIImageView,使用低分辨率图像作为 placeHolder。

代码如下所示:

    func setProgressively(url: URL,completion: @escaping (Bool) -> Void) {
        guard let url128 = URL(string: "\(url.absoluteString)/128") else { return }

        self.pin_setimage(from: url128) { [weak self] (result) in
            self?.clear()
            self?.pin_setimage(from: url,placeholderImage: result.image,completion: { [weak self] (finalresult) in
                PINRemoteImageManager.shared().cache.removeObject(forKey: PINRemoteImageManager.shared().cacheKey(for: url128,processorKey: nil))
                self?.pin_updateUI(with: finalresult)
            })
            completion(true)
        }
    }

    func clear() {
        pin_cancelImageDownload()
        pin_clearImages()
    }

但是,UIImageView 不会从低分辨率图像更新,或者它仅在某些情况下加载高分辨率图像。

有没有人尝试过类似的实现并知道更好的做法?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。