无法在标签栏 iOS Swift 中显示图标

Posted

技术标签:

【中文标题】无法在标签栏 iOS Swift 中显示图标【英文标题】:Unable to show icon in Tab Bar 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 中运行,我尝试在我的设备上启动,但图像仍然没有显示。 【参考方案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 文件夹。

    File > New > Resource > Asset Catalog.

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

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

【讨论】:

【参考方案3】:

尝试这样修改:-

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

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

【讨论】:

以上是关于无法在标签栏 iOS Swift 中显示图标的主要内容,如果未能解决你的问题,请参考以下文章

ios 8/swift 标签栏多点点击图标小我怎么办? [关闭]

iOS 10,Swift 3 - 更改非活动栏项目图标?

iOS:旧标签栏图标显示

在更多标签栏控制器IOS8中以选定状态显示的图标

React Native 标签栏 iOS 图标未显示

为啥“标签栏控制器”不显示图标?