首页 > 解决方案 > ios swift MPMediaItemArtwork requestHandler 从 SDWebImage 返回图像

问题描述

如何从到异步加载sdwebimage图像?MPMediaItemArtworkMPNowPlayingInfoCenter

MPMediaItemPropertyArtwork: MPMediaItemArtwork(boundsSize: CGSize(width: 200, height: 200), requestHandler: { (size) -> UIImage in

     let fakeImageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 200, height: 200))
     fakeImageView.sd_setImage(with: thumbURL, completed: { (image, error, cache, url) in

            if (error != nil) {
                return UIImage(named: "no_artwork") // i cannot return this
            } else {
                return image // i cannot return this
            }

     })

     return ... // how access to image from sdwebimage

})

我无法从内部函数返回图像。如何解决这个问题?

标签: iosswiftsdwebimagempnowplayinginfocenter

解决方案


从您提供的代码中,该sd_setImage方法的闭包返回 void,您不能在那里定义非 void 返回值。

但是,您可以定义MPMediaItemArtwork闭包的内部。那是您可以使用图像的时间。


推荐阅读