iOS 10个选中的TabBarItem消失

iOS 10 selected TabBarItem disappears

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

该应用在 iOS7 - iOS9 期间运行良好。但是使用 iOS10 选项卡项在被选中时消失(图标和标题)。

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

但是当应用程序 运行 在 iOS10 device/simulator 上时,应用程序看起来如下所示(图像在同一标签栏中显示不同的选择,行为是相同的所有 3 项)

导致此问题的原因可能是什么?有什么变通办法吗?

Select 你的 tabbar 来自 tabbarController scene 并在 view 下设置一些 tintColor 然后检查它是否有效!

我终于找到了解决这个问题的方法。我仍然不确定这是由于 iOS 10.

中的更改还是错误所致

摘自对一个旧问题的回复:

您需要创建一个自定义 TabBarViewController 并在故事板中使用它。 在那个视图控制器中做类似的事情,直接在代码中设置 tintColor:

class UIMeeetTabBarController: UITabBarController, UITabBarControllerDelegate{

override func viewDidLoad() {
    super.viewDidLoad()        
    self.tabBar.tintColor = Style.colorRed
}

我希望这对你也有用。

我知道这是一个老问题,但我在 Xcode 9 中遇到了同样的问题,最后一行代码都解决了。转到属性检查器并使选项卡栏项目所选图像与栏项目图像匹配...

您不需要设置自定义标签栏控制器。这里的问题是缺少文档(为此我向 Apple 提交了错误报告并鼓励您也这样做)。

您可以在 Interface Builder 中解决此问题,方法是选择选项卡栏本身,然后转到属性检查器的 "Tab Bar"(顶部)部分并设置 "Image Tint" 颜色。我假设当标签栏项进入 "selected" 状态时,控件会反转图形的 alpha 通道并让底层标签栏的颜色显示出来。如果该颜色是 "clear" 或与您的标签栏项的背景完全匹配……您什么也看不到。如果您有深色背景,请尝试将此值设置为白色。

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