将MPMediaItemArtwork从iOS 10转换为iOS 9

时间:2017-07-26 11:18:06

标签: swift ios9 ios10 mpmediaitem

我通过执行以下操作更新控制中心中的专辑封面:

let image:UIImage = UIImage(named: title)!
let artwork = MPMediaItemArtwork.init(boundsSize: image.size, requestHandler: { (size) -> UIImage in

            return image

        })

这在iOS 10中完美运行,但我希望我的应用程序允许iOS 9和10用户。每当我这样做时,我都会收到错误

  

init(boundsSize:requestHandler :)仅适用于iOS 10或更高版本

所以,我需要将我的代码更改为

let image:UIImage = UIImage(named: title)!
        if #available(iOS 10.0, *) {
            let artwork = MPMediaItemArtwork.init(boundsSize: image.size, requestHandler: { (size) -> UIImage in
                return image
            })
        } else {
            // What goes here??
        }

我不知道如何在iOS 9中执行此操作。我该怎么做?

2 个答案:

答案 0 :(得分:0)

在iOS 10之前,除了简单init()之外,MPMediaArtwork的初始化程序为init(image:)

答案 1 :(得分:0)

您应该在iOS 9上使用MPMediaItemArtwork(image:image)。

var artwork:MPMediaItemArtwork!
if let image = UIImage(named: imageName) {
    if #available(iOS 10.0, *) {
        artwork = MPMediaItemArtwork.init(boundsSize: image.size, requestHandler: { (size) -> UIImage in
            return image
        })
    } else {
        artwork = MPMediaItemArtwork(image: image)
    }
}
//use artwork here