显示图像的动态 IBOutlet

Dynamic IBOutlet to display Image

我正在尝试将 IBoutlet 设置为显示当前正在播放的专辑封面。这是我到目前为止所拥有的,但没有骰子。

@IBOutlet weak var nowPlayingArtBackground: UIImageView!

    func currentArt() -> UIImage? {
        let image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        return image
    @IBOutlet = currentArt()

您的代码中有些东西 - 特别是 @IBOutlet = currentArt() 让人难以理解 您认为代码如何工作。因此,让我们尝试从高层次开始。

您需要一个 UIImageView(我们将其称为 nowPlayingArtBackground)来显示一件艺术品(例如,名为 currentArt 的函数的输出)。到目前为止,你所拥有的一切都很好。使用 @IBOutlet 表明您在情节提要中进行了所有设置 - 很好。

如果你想在nowPlayingArtBackground中查看currentArt()的输出,你想要的代码行是:

nowPlayingArtBackground.image = currentArt()

这将从您的函数获取输出并显示它。但是有两个问题你还没有真正回答:

(1)currentArt()的输出从哪里来?

您的函数代码是获取 UIGraphicsGetImageFromCurrentImageContext() 内容的代码,但是 是什么 这个上下文?一般来说,专辑插图存储在某个地方,无论是数据库 (Firebase?) 还是文件(本地?云端?)——实际上,您不一定定义

(2) 什么触发改变显示的图稿?

换句话说,是什么触发了对 currentArt().

的调用

假设您的作品作为数据存储在本地数据库中, 为song/artist。您可能需要 "driver" 一些 AV 流(我真的不是音频方面的专家,但我的意思是它是 "music player" 需要驱动的东西)。当歌曲改变时,您需要将图像设置为 currentArt() 的输出,并且您需要正确编写函数代码以调用该 song/artist 组合的艺术作品。

希望其中的一些内容可以让您指出正确的方向 - 或者至少向您展示您的问题中缺少的一些内容。祝你好运!