【问题标题】:Unable to show icon in Tab Bar iOS Swift无法在标签栏 iOS Swift 中显示图标
【发布时间】:2017-08-02 00:27:26
【问题描述】:

尽管尝试了 SO 上发布的各种方法,但在初始化标签栏控制器时,我无法让模拟器显示标签栏图标。

对于每个图标,我提供了 3 种尺寸,即 25 像素 x 25 像素、50 像素 x 50 像素 (@2x) 和 75 像素 x 75 像素 (@3x)。

这就是我的 Tabbar 在模拟器中的显示方式

下面分别是Tab和Image属性

这是我的图标之一,大小为 75px x 75px (@3x)

有人可以指导我哪里出错了吗?

【问题讨论】:

  • 只是出于好奇,您正在运行 Beta 版吗?我的所有图标在 Beta 版中停止显示,但在我的手机上显示。
  • 检查您添加的图像的插图并尝试导入一个小图像(如 50Px)尝试使用 Xcode 版本并尝试在设备上启动应用程序也可能只是模拟器问题
  • @Diesel 没错,我在 X code 9 Beta 中运行,我尝试在我的设备上启动,但图像仍然没有显示。

标签: ios swift uitabbarcontroller uitabbar


【解决方案1】:

对于 Swift 3.0

以编程方式为选定的选项卡和未选定的选项卡图像设置

    let arrayOfImageNameForSelectedState = ["tabBar_img_1", "tabBar_img_2", "tabBar_img_3"]
    let arrayOfImageNameForUnselectedState = ["tabBar_img_1", "tabBar_img_2", "tabBar_img_3"]

    if let count = self.tabBar.items?.count {

        for i in 0...(count-1) {

            let imageNameForSelectedState   = arrayOfImageNameForSelectedState[i]
            let imageNameForUnselectedState = arrayOfImageNameForUnselectedState[i]

            self.tabBar.items?[i].selectedImage = UIImage(named: imageNameForSelectedState)?.withRenderingMode(.alwaysOriginal)
            self.tabBar.items?[i].image = UIImage(named: imageNameForUnselectedState)?.withRenderingMode(.alwaysOriginal)
        }
    }

【讨论】:

    【解决方案2】:

    我终于发现问题与xcassets 文件夹有关。为了解决这个问题,我在 Xcode 中创建了一个新的 xcassets 文件夹。

    1. File > New > Resource > Asset Catalog.

    2. 如下所示,我确保我的目标应用程序也被选中。

    我将图像从旧的xcassets 文件夹拖放到新文件夹中,所有图像都在加载中。

    【讨论】:

      【解决方案3】:

      尝试这样修改:-

      然后以编程方式更新您的自定义图像

      if let tabBarItems = yourTabBar?.items {
        tabBarItems[0].selectedImage(UIImage(name: yourImage)
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-20
        • 2018-11-16
        • 2011-12-09
        相关资源
        最近更新 更多