14

Apple はiOS 10 でinit(image:)メソッドを非推奨にしました。新しい代替手段は何ですか。MPMediaItemArtwork

クラスはインターフェイスを示し、新しい OS バージョンで使用できるメソッドを以下に示します

public init(boundsSize: CGSize, requestHandler: @escaping (CGSize) -> UIImage)

誰がそれを使用する方法を知っていますか?

また、前の質問の一部である質問 2:シミュレーターで動作するロック画面とコントロール センターで現在再生中のメタデータを表示していますか?MPNowPlayingInfoCenter

4

4 に答える 4

36

次のコードを使用できます。

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

そして、はい、「現在再生中」のメタデータがシミュレーターのコントロール センターに表示されます。

于 2016-12-20T17:58:14.307 に答える
8

私は同じことを考えていて、これについてのAppleの説明を見つけました。

彼らは、ハンドラーが要求されたときに画像に対してコストのかかるサイズ変更操作を行うべきではなく、代わりに、既に利用可能な画像から厳密に一致する画像を返すだけであると言います。

次の WWDC 2017 ビデオは、彼らが言及している場所です。これは tvOS に関するものですが、少なくともある程度の洞察は得られます。07:20 開始: https://developer.apple.com/videos/play/wwdc2017/251/?time=440

于 2018-07-09T12:44:54.960 に答える
1

最小コード:

MPMediaItemArtwork(boundsSize: image.size) { _ in image }
于 2019-03-15T03:28:23.700 に答える