我正在尝试设置IBoutlet以显示当前播放的专辑封面。这是我到目前为止,但没有骰子。
@IBOutlet weak var nowPlayingArtBackground: UIImageView!
func currentArt() -> UIImage? {
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image
@IBOutlet = currentArt()
你的代码中有一些东西 - 尤其是@IBOutlet = currentArt()
,这使得你很难理解你认为代码是如何工作的。所以让我们尝试从高层开始。
你需要一个UIImageView
(我们称之为nowPlayingArtBackground
),它将显示一件艺术品(比如,一个名为currentArt
的函数的输出)。到目前为止,你所拥有的一切都很好。使用@IBOutlet
建议你在故事板中设置这一切 - 很好。
如果你想在currentArt()
中查看nowPlayingArtBackground
的输出,你想要的代码行是:
nowPlayingArtBackground.image = currentArt()
这将获取您的功能的输出并显示它。但是你还没有真正回答过两个问题:
(1)currentArt()
的输出来自哪里?
您的功能代码是获取UIGraphicsGetImageFromCurrentImageContext()
内容的代码,但究竟是什么内容?一般来说,专辑图片存储在某个地方,无论是数据库(Firebase?)还是文件(本地?云?) - 实际上,您没有必要对此进行定义。
(2)什么触发改变显示的艺术品?
换句话说,什么触发了对currentArt()
的调用。
假设您将您的作品本地存储为数据库中的数据,其关键是歌曲/艺术家。你需要一个“驱动程序”可能是一些AV流(我真的不是音频方面的专家,但我只是说它是需要驱动东西的“音乐播放器”)。当歌曲发生变化时,您需要将图像设置为currentArt()
的输出,并且您需要正确编码该功能以调出该歌曲/艺术家组合的艺术作品。
希望其中一些能让你指出正确的方向 - 或者至少向你展示你问题中缺少的一些东西。祝好运!