在运行时设置标签栏图像

时间:2019-08-30 11:47:00

标签: swift xcode

我希望在运行时将标签栏项目的图像更改为新图像,但要更新其他视图。

有什么办法可以做到这一点?

我已经奋斗了几个小时,所以任何帮助将不胜感激。

Swift 4.2 Xcode 10.1

编辑:

我尝试通过VC中的viewDidLoad中的self.tabBarController?.tabBar.items?[0] .image进行设置。我尝试对TabBarController进行子类化,并在那里进行设置,但无法获得我所追求的运行时行为。

更清楚地说,我对当前选择的和未选择的名为“ globe”的图像感到满意,但是我想听一个名为“ truth”的变量,当真值成立时,我想更改未选择的图像图片到“ globe_red”。

正是我在努力运行的应用程序运行时更改图像的行为!

2 个答案:

答案 0 :(得分:1)

您可以使用以下代码更改tabBar的图像。

self.tabBarController?.tabBar.items?[0].image = #imageLiteral(resourceName: "img")

selectedImage

self.tabBarController?.tabBar.items?[0].selectedImage = #imageLiteral(resourceName: "img")

您可以将索引用于选定的tabBar,而不是0中的items

答案 1 :(得分:0)

好,我修好了!

  • UITabBarController子类

  • 在子类的viewDidLoad中,将self.tabBar.items?[0] .image和self.tabBar.items?[0] .selectedImage设置为所需的图像。在这里,我设置了第一个VC的选项卡栏项,但是您可以使用索引设置任何项或循环浏览并全部设置。