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 状态。
我有一个应用程序在故事板中使用基于 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 状态。