在标签栏中设置自定义图标以突出显示/未突出显示
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")
【讨论】:
你好弗兰克;您的代码可能是正确的,但在某些上下文中它会做出更好的答案;例如,您可以解释这个提议的更改如何以及为什么会解决提问者的问题,可能包括指向相关文档的链接。这将使它对他们更有用,对正在寻找类似问题的解决方案的其他网站读者也更有用。以上是关于在标签栏中设置自定义图标以突出显示/未突出显示的主要内容,如果未能解决你的问题,请参考以下文章
在 ViewModel 中设置时 ListView SelectedItem 未突出显示