我正在尝试将IBoutlet设置为显示当前正在播放的专辑封面。这是我到目前为止没有的骰子。
@IBOutlet weak var nowPlayingArtBackground: UIImageView!
func currentArt() -> UIImage? {
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image
@IBOutlet = currentArt()
答案 0 :(得分:1)
您的代码中有些东西-特别是@IBOutlet = currentArt()
,这使得您难以理解如何,您认为代码会工作。因此,让我们尝试从高层次开始。
您需要一个UIImageView
(我们将其称为nowPlayingArtBackground
)来显示艺术品(例如,名为currentArt
的函数的输出)。到目前为止,您拥有的一切都很好。使用@IBOutlet
建议您将其全部设置在情节提要中。
如果要在currentArt()
中查看nowPlayingArtBackground
的输出,则所需的代码行是:
nowPlayingArtBackground.image = currentArt()
这将从函数的输出中显示出来。但是您还没有真正回答两个问题:
(1)currentArt()
的输出来自哪里?
您的功能代码是采用UIGraphicsGetImageFromCurrentImageContext()
内容的代码,但是在这种情况下 到底是什么?一般来说,专辑插图是存储在某个地方的,无论是数据库(Firebase?)还是文件(本地?云?)-照原样,您不一定要对此进行定义。
(2)是什么触发了更改显示的图稿?
换句话说,触发currentArt()
的呼叫的原因。
假设您将艺术品作为数据本地存储在数据库中,而 key 是歌曲/歌手。您需要一个“驱动程序”,可能需要一些AV流(我实际上不是音频专家,但我只是说这是需要驱动事物的“音乐播放器”)。当歌曲改变时,您需要将图像设置为currentArt()
的输出,并且需要正确地对该函数进行编码,以调出该歌曲/歌手组合的插图。
希望其中一些可以使您指向正确的方向-或至少向您显示问题中缺少的一些内容。祝你好运!