动态IBOutlet显示图像

问题描述 投票:-1回答:1

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

@IBOutlet weak var nowPlayingArtBackground: UIImageView!

    func currentArt() -> UIImage? {
        let image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        return image
    @IBOutlet = currentArt()
swift iboutlet
1个回答
1
投票

你的代码中有一些东西 - 尤其是@IBOutlet = currentArt(),这使得你很难理解你认为代码是如何工作的。所以让我们尝试从高层开始。

你需要一个UIImageView(我们称之为nowPlayingArtBackground),它将显示一件艺术品(比如,一个名为currentArt的函数的输出)。到目前为止,你所拥有的一切都很好。使用@IBOutlet建议你在故事板中设置这一切 - 很好。

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

nowPlayingArtBackground.image = currentArt()

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

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

您的功能代码是获取UIGraphicsGetImageFromCurrentImageContext()内容的代码,但究竟是什么内容?一般来说,专辑图片存储在某个地方,无论是数据库(Firebase?)还是文件(本地?云?) - 实际上,您没有必要对此进行定义。

(2)什么触发改变显示的艺术品?

换句话说,什么触发了对currentArt()的调用。

假设您将您的作品本地存储为数据库中的数据,其关键是歌曲/艺术​​家。你需要一个“驱动程序”可能是一些AV流(我真的不是音频方面的专家,但我只是说它是需要驱动东西的“音乐播放器”)。当歌曲发生变化时,您需要将图像设置为currentArt()的输出,并且您需要正确编码该功能以调出该歌曲/艺术​​家组合的艺术作品。

希望其中一些能让你指出正确的方向 - 或者至少向你展示你问题中缺少的一些东西。祝好运!

© www.soinside.com 2019 - 2024. All rights reserved.