在标签栏中设置自定义图标以突出显示/未突出显示

Posted

技术标签:

【中文标题】在标签栏中设置自定义图标以突出显示/未突出显示【英文标题】:setting custom icons in tabbar for highlighted/not highlighted 【发布时间】:2016-08-18 22:01:55 【问题描述】:

我的资产中有我想用于标签栏的图标,每个标签有 2 个图标(一个代表未突出显示,即只是一个大纲,一个代表突出显示,即全部填充)。这个想法是为当前未选择的选项卡使用轮廓图标,为当前选择的选项卡使用填充图标。我该怎么做?

【问题讨论】:

【参考方案1】:

只需为您的标签栏创建一个类,例如:

class MainTabBarController: UITabBarController 

     override func viewDidLoad() 
        super.viewDidLoad()

        for item in self.tabBar.items! as [UITabBarItem] 

        // loop through all of your elements in TabBar

        if let image = item.image 

            item.selectedImage = your Selected Image
            item.image = your base Image

        
    



您可以将所有图像存储在包含 UIImage 的数组中,例如:

let TabImages = [UIImage]()
let HighlightedImages = [UIImage]()

然后在你的 for each 循环中设置它们。

【讨论】:

太棒了!到目前为止似乎工作得很好。循环中if let 的用途是什么? 检查是否有图片。它与 if item.image != nil 相同(但在这种情况下,如果现有的 TabBar 图像。【参考方案2】:
var tabBarController = self.window!.rootViewController as UITabBarController
let tabItems = tabBarController.tabBar.items as [UITabBarItem]
tabItems[2].selectedImage = UIImage(named: "tabImage1_Selected")

【讨论】:

你好弗兰克;您的代码可能是正确的,但在某些上下文中它会做出更好的答案;例如,您可以解释这个提议的更改如何以及为什么会解决提问者的问题,可能包括指向相关文档的链接。这将使它对他们更有用,对正在寻找类似问题的解决方案的其他网站读者也更有用。

以上是关于在标签栏中设置自定义图标以突出显示/未突出显示的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 的标签栏中禁用蓝色突出显示?

在 ViewModel 中设置时 ListView SelectedItem 未突出显示

在word文档中如何将“以不同颜色突出显示文本”快捷键设置为ctrl+1 ?请简单具体一点。谢谢!

如何用比率突出显示选定的自定义图标

在自定义导航栏 wordpress 中突出显示当前页面

自动突出显示 UITabBar 按钮