3

随着 tvOS 9.1 和 Xcode 7.2 的发布,我的UITabBarItem图像显示不正确。在我的视图控制器中,tabBarItem.imagetabBarItem.selectedImage使用UIImageRenderingMode.AlwaysOriginal.

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)

    self.tabBarItem.image = UIImage(named: "myTabImage")?.imageWithRenderingMode(.AlwaysOriginal)
    self.tabBarItem.selectedImage = UIImage(named: "myTabImageSelected")?.imageWithRenderingMode(.AlwaysOriginal)
}

选择的图像显示正确,但未选择的图像显示为模板,即忽略其颜色信息。

使用 tvOS 9.0 SDK 可以正确显示两个图像,但未选择的图像在 tvOS 9.1 中显示不正确。更糟糕的是,未选择的图像显示为黑色,标签栏背景也显示为黑色。

在此处输入图像描述

这是在 tvOS 9.0 上运行的相同代码

在此处输入图像描述

我怀疑这是 tvOS 9.1 的错误,但有没有人找到解决方法或看到我没有正确执行的操作?

4

4 回答 4

1

我们在我们的 tvos 应用程序中看到了类似的东西,除了我们使用文本而不是图像。tvOS 9.1 忽略 textColor。

UITabBarItem.appearance().setTitleTextAttributes([
    NSForegroundColorAttributeName: <barTextColor>
], forState: UIControlState.Normal)

UITabBarItem.appearance().setTitleTextAttributes([
    NSForegroundColorAttributeName: <barTextColorSelected>,
], forState: UIControlState.Selected)
于 2015-12-10T18:58:39.730 回答
1

它似乎绝对是 tvOS 9.1 的 UITabBarController 实现中的一个错误。所以我最终写了自己的替代品。在此期间,我添加了对超过 7 个选项卡栏项目的支持,使其在黑色背景上看起来不错,并在其中一个选项卡上包含了一个搜索栏(也在黑色背景上)。这解决了我在尝试构建我的第一个 tvOS 应用程序时遇到的许多困难。

链接到 Github 存储库

在此处输入图像描述

于 2016-01-09T21:16:58.147 回答
0

这已被 Apple 确认为错误,并已在 tvOS 9.1.1 中修复。

于 2016-02-01T22:38:52.903 回答
0

它可能对 tvOS 9.1 有所帮助。这段代码写入viewDidLoad().UITabBarController

for item in self.tabBar.items!{
            item.setTitleTextAttributes([NSForegroundColorAttributeName:UIColor.blackColor()], forState: UIControlState.Normal)
            item.setTitleTextAttributes([NSForegroundColorAttributeName:UIColor.greenColor()], forState: UIControlState.Focused)
        }
于 2016-02-17T10:33:43.157 回答