MPMediaItemArtwork init(image :)在iOS 10.0中已弃用

car*_*onr 12 ios mpnowplayinginfocenter swift ios10

Apple已在iOS 10中弃用了init(image:)方法MPMediaItemArtwork.新的替代方案是什么.

该类显示接口显示以下方法,以便在新的OS版本中可用

public init(boundsSize: CGSize, requestHandler: @escaping (CGSize) -> UIImage)
Run Code Online (Sandbox Code Playgroud)

有谁知道如何使用它?

问题2,上一个问题的一部分:现在使用MPNowPlayingInfoCenter模拟器中的工作显示锁屏和控制中心的元数据吗?

Vir*_*sio 29

您可以使用以下代码:

let image = UIImage(named: "logo")!
let artwork = MPMediaItemArtwork.init(boundsSize: image.size, requestHandler: { (size) -> UIImage in
        return image
})
Run Code Online (Sandbox Code Playgroud)

并且,是的,"正在播放"元数据显示在模拟器中的控制中心.


hyb*_*ttt 5

我在想同样的事情,最终找到了苹果对此的解释。

他们说,当请求处理程序时,我们不应该在图像上进行任何昂贵的调整大小操作,而只是从您已经可以使用的图像中返回最匹配的图像。

以下WWDC 2017视频是他们提到的地方。这是关于tvOS的,但至少我们有一些见识。从07:20开始:https : //developer.apple.com/videos/play/wwdc2017/251/? time = 440