iOS 10选中的TabBarItem消失了

问题描述 投票:2回答:4

我有一个应用程序,它在故事板中使用基于TabBar的导航来导航到不同的视图。

该应用程序在iOS7 - iOS9上运行良好。但是对于iOS10,标签项在被选中时会消失(图标和标题)。

标签栏完全配置在故事板中,没有自定义用户代码。在XCode中,一切看起来都很好:enter image description here

但是当应用程序在iOS10设备/模拟器上运行时,应用程序如下所示(图像在同一个标​​签栏中显示不同的选择,所有3个项目的行为相同)enter image description here

这个问题可能是什么原因?有没有工作?

ios user-interface ios10
4个回答
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
投票

tabbar中选择你的tabbarController scene并在tintColor下设置一些view,然后检查它是否有效!


0
投票

我知道这是一个旧的,但我在Xcode 9中遇到了同样的问题,最后在没有一行代码的情况下解决了它。转到属性检查器并使标签栏项目选定图像与栏项目图像匹配...


0
投票

您无需设置自定义选项卡栏控制器。这里的问题是缺少文档(为此我向Apple提交了一个错误报告并鼓励您这样做)。

您可以在Interface Builder中通过选择标签栏本身然后转到“属性”检查器的“标签栏”(顶部)部分并设置“图像色调”颜色来解决此问题。我认为当标签栏项目进入“选定”状态时,控件会反转图形的alpha通道,并让底层标签栏的颜色显示出来。如果该颜色是“清除”或与您的标签栏项目的背景完全匹配......您什么也看不见。如果背景较暗,请尝试将此值设置为白色。

标签栏项目的图形仅使用其alpha(非透明)像素显示为黑白图像。然后,这些像素将允许底层标签栏的“色调”显示或不显示,具体取决于未选择/选择的状态。

© www.soinside.com 2019 - 2024. All rights reserved.