我有一个应用程序,它在故事板中使用基于TabBar的导航来导航到不同的视图。
该应用在iOS7 - iOS9上运行良好。但是对于iOS10,标签项在被选中时会消失(图标和标题)。
标签栏完全配置在故事板中,没有自定义用户代码。在XCode中,一切看起来都很好:
但是当应用程序在iOS10设备/模拟器上运行时,应用程序如下所示(图像在同一个标签栏中显示不同的选项,所有3个项目的行为相同)
这个问题可能是什么原因?有没有工作?
答案 0 :(得分:2)
我终于找到了解决这个问题的方法。我仍然不确定这是由于iOS 10中的更改还是错误。
从这个回答中得出一个老问题: https://stackoverflow.com/a/39884669/1567923
您需要创建自定义TabBarViewController 并在故事板中使用它。 并且在该视图控制器中执行类似的操作,直接在代码中设置tintColor:
class UIMeeetTabBarController: UITabBarController, UITabBarControllerDelegate{
override func viewDidLoad() {
super.viewDidLoad()
self.tabBar.tintColor = Style.colorRed
}
我希望这对你也有用。
答案 1 :(得分:1)
从tabbar
选择您的tabbarController scene
并在tintColor
下设置一些view
,然后检查它是否有效!
答案 2 :(得分:0)
我知道这是一个旧版本,但我在Xcode 9中遇到了同样的问题,最后在没有一行代码的情况下解决了这个问题。转到属性检查器并使标签栏项目选定图像与条形图像图像匹配...
答案 3 :(得分:0)
您不需要设置自定义标签栏控制器。这里的问题是缺少文档(为此我向Apple提交了错误报告,并鼓励您这样做)。
您可以在Interface Builder中解决此问题,方法是选择选项卡栏本身,然后转到“属性”检查器的“选项卡栏”(顶部)部分,并设置“图像色调”颜色。我假定当选项卡栏项进入“选定”状态时,控件会反转图形的Alpha通道,并让底层的选项卡栏的颜色显示出来。如果该颜色是“透明”或与您的标签栏项目的背景完全匹配……您什么也看不到。如果背景较暗,请尝试将此值设置为白色。
选项卡栏项目的图形仅使用其alpha(非透明)像素显示为黑白图像。然后,这些像素将允许基础选项卡栏的“色点”显示出来或不显示出来,这取决于未选中/选中的状态。