动态IBOutlet以显示图像

时间:2018-09-02 14:09:27

标签: swift iboutlet

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

@IBOutlet weak var nowPlayingArtBackground: UIImageView!

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

1 个答案:

答案 0 :(得分:1)

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

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

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

nowPlayingArtBackground.image = currentArt()

这将从函数的输出中显示出来。但是您还没有真正回答两个问题:

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

您的功能代码是采用UIGraphicsGetImageFromCurrentImageContext()内容的代码,但是在这种情况下 到底是什么?一般来说,专辑插图是存储在某个地方的,无论是数据库(Firebase?)还是文件(本地?云?)-照原样,您不一定要对此进行定义

(2)是什么触发了更改显示的图稿?

换句话说,触发currentArt()的呼叫的原因。

假设您将艺术品作为数据本地存储在数据库中,而 key 是歌曲/歌手。您需要一个“驱动程序”,可能需要一些AV流(我实际上不是音频专家,但我只是说这是需要驱动事物的“音乐播放器”)。当歌曲改变时,您需要将图像设置为currentArt()的输出,并且需要正确地对该函数进行编码,以调出该歌曲/歌手组合的插图。

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