私はMPMediaItemPropertyArtworkでimageViewを設定しています。このコードは、トラックを変更するとうまく動作しますが、ビューを閉じたままにしておくと、このコードが呼び出され、UIImageView.Imageはゼロ以外の値で設定してもゼロになります。UIImageView.imageはnil以外の値で設定された後はnilです
MPMediaItemArtwork *artwork = [nowPlayingItem valueForProperty:MPMediaItemPropertyArtwork];
if (artwork != nil) {
self.songImageView.image = [artwork imageWithSize:self.songImageView.frame.size];
}
私はアートワークがnilでないともself.songImageViewがnilでない、nowPlayingItemがnilでないことを決定するためにチェックのカップルを試してみました。
他にも私が探しているはずのアイデアはありますか?
この動作に注意する必要があります。私はself.songImageView.image = にブレークポイントを設定すると、私はこれを試みた: 経口self.songImageView.frame.size エラー:プロパティ「フレーム」タイプのオブジェクトに見つかりません「UIImageView *」 エラー:1つのエラーが解析を式 – Justin
あなたのコメントによると、Imageviewにフレームがないように見えます。最初に画像ビューのフレームを設定してから、画像を追加してください。 –
無関係ですが、Objective-Cではnilがfalseと評価されます。 "if(artwork!= nil){...}"の代わりに "if(artwork){...}"と書くことができます。 –