2016-11-25 46 views
1

此代碼正確:如何斯威夫特定義MPMediaItemPropertyArtwork 3

func setInfoCenterCredentials(_ artist: String, _ title: String, _ image: UIImage) { 
    let mpic = MPNowPlayingInfoCenter.default()   
    let albumArt = MPMediaItemArtwork(image: image) 
    mpic.nowPlayingInfo = [MPMediaItemPropertyTitle: title, 
          MPMediaItemPropertyArtist: artist, 
          MPMediaItemPropertyArtwork: albumArt] 
} 

但Xcode的抱怨上:let albumArt = MPMediaItemArtwork(image: image)

'的init(圖像:)' 在iOS的10.0

棄用

我試圖把image設置爲MPMediaItemPropertyArtwork: image,但這會導致崩潰。

如何正確設置iOS 10.0?非常感謝幫助。

編輯:是的。我在文檔中找到該部分:

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

但我不知道如何使用它。

+0

未刪除我的問題,即使我有downvotes ...是的,我已經找到了這個,但我不知道如何處理這個。對不起,我的愚蠢問題和我的知識缺乏... –

+0

現在你已經改變了你提問的方式,這是一個很好的問題,所以我已經收回了我的downvote。你如何使用它?我會告訴你,掛在... – matt

回答

2

那麼這個初始值設定項要求什麼?它想要一個尺寸(足夠公平),它想要一個函數,它提供給定大小的圖像。

所以,你可以天真實現它是這樣的:

let albumArt = MPMediaItemArtwork(boundsSize:mySize) { sz in 
    return image 
} 

也就是說,被填充到必要的空白,應該讓你過去的編譯器(讓我知道,如果沒有,我的天堂」測試它)。但是,這不是一個很好的實現!你在功能應該做什麼是您的圖像大小降低到傳入參數(我的代碼sz)中請求的大小。我想我會把它作爲讀者的練習......!

+0

我不明白的是,之前通過'讓albumArt = MPMediaItemArtwork(image:image)',我'設置'一個圖像,圖像名爲' image'。用新的方式我'返回'一個圖像。但是什麼形象?以及如何將'我的''UIImage'作爲'albumArt' –

+0

在我的代碼中,您仍將它設置爲名爲'image'的圖像。而你仍然將它設置爲'albumArt'。我不明白這個問題。 – matt

+0

哦。你是對的...我剛剛嘗試過。我猜想我讀的代碼錯了......我以爲返回總是返回函數的'result' ......我不明白,因爲從我的角度來看,我沒有給'function'我的圖像'作爲參數......非常感謝您的幫助 –