我正在使用带有两个项目的 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"
关于swift - 默认情况下,TabBar 上的选定项目不会突出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56580555/