swift - 默认情况下,TabBar 上的选定项目未突出显示
问题描述
我正在使用带有两个项目的 TabBar。我在 .xib 文件上创建它并以编程方式设置 ViewControllers。我可以选择默认的 VC:
selectedIndex = 0
现在的问题是 tabBar 没有突出显示选定的项目图标。
我在 TabBarController 的 viewDidLoad() 上设置了 VC:
let firstViewController = FirstViewController(nibName: "FirstViewController", bundle: nil)
let secondViewController = SecondViewController(nibName: "SecondViewController", bundle: nil)
self.viewControllers = [firstViewController, secondViewController]
这是在每个 VC 上创建项目的代码:
let tabBarItem = UITabBarItem(title: "First", image: #imageLiteral(resourceName: "firstImage"), selectedImage: nil)
self.tabBarItem = tabBarItem
不仅默认情况下选定的索引不突出显示,有时它只显示其中一个,直到我点击 tabBar。
编辑:
我添加了三个图像。
第一个是在加载 VC 之后拍摄的。未点击任何项目,以编程方式选择索引 0,并且 VC 按预期显示。
第二个是在第二个项目上执行点击后,它显示但两者都没有突出显示。
第三个是再点击一次之后,现在,无论按哪个,突出显示都有效。
编辑2:
我添加了一个视频:
解决方案
您必须将图像分配给 selectedIndex tabBar 项目,如下所示
let myTabBarItem1 = (self.tabBar.items?[0])! as UITabBarItem
myTabBarItem1.image = UIImage(named: "Unselected")?.withRenderingMode(UIImageRenderingMode.alwaysOriginal)
myTabBarItem1.selectedImage = UIImage(named: "Selected ")?.withRenderingMode(UIImageRenderingMode.alwaysOriginal)
myTabBarItem1.title = "First"
let myTabBarItem2 = (self.tabBar.items?[1])! as UITabBarItem
myTabBarItem2.image = UIImage(named: "Unselected")?.withRenderingMode(UIImageRenderingMode.alwaysOriginal)
myTabBarItem2.selectedImage = UIImage(named: "Selected")?.withRenderingMode(UIImageRenderingMode.alwaysOriginal)
myTabBarItem2.title = "Second"
推荐阅读
- javascript - react api调用中的路径变量
- linq - 带有 IN 列表的动态 Linq
- sql - ORA-04091:表正在变异,触发器/函数可能看不到它,ORA-06512:,ORA-06512:在“SYS.DBMS_SQL”,第 1721 行
- c# - .NET 5 Rest Api get client ip, machine name and location
- python - Verifying a Websokcet connection with Python
- snakemake - is there a way to specify the snakemake rules that should be submitted to slurm, instead of specifying the rules to be run locally?
- sql - Oracle SQL: exclude weekend while comparing results from previous day
- react-native - onGoogleVisionBarcodesDetected error React native
- python - Python: How do I call upon a variable in my code from a user input?
- c - Not adding correct data in a file in C