UITabBar 显示 UITabBarItem 图像忽略渲染模式 AlwaysOriginal
UITabBar displays UITabBarItem image ignoring rendering mode AlwaysOriginal
随着 tvOS 9.1 和 Xcode 7.2 的发布,我的 UITabBarItem
图片显示不正确。在我的视图控制器中,我使用 UIImageRenderingMode.AlwaysOriginal
.
和图像设置 tabBarItem.image
和 tabBarItem.selectedImage
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 的错误,但有没有人找到解决方法或发现我做错了什么?
我们在 tvos 应用程序中看到了类似的东西,只是我们使用文本而不是图像。 tvOS 9.1 忽略 textColor。
UITabBarItem.appearance().setTitleTextAttributes([
NSForegroundColorAttributeName: <barTextColor>
], forState: UIControlState.Normal)
UITabBarItem.appearance().setTitleTextAttributes([
NSForegroundColorAttributeName: <barTextColorSelected>,
], forState: UIControlState.Selected)
这似乎肯定是 tvOS 9.1 的 UITabBarController 实现中的错误。所以我最终写了自己的替代品。在此期间,我添加了对超过 7 个选项卡栏项目的支持,使其在黑色背景上看起来不错,并在其中一个选项卡上(也在黑色背景上)包含了一个搜索栏。这解决了我在尝试构建我的第一个 tvOS 应用程序时遇到的许多困难。
这已被 Apple 确认为错误,并已在 tvOS 9.1.1 中修复。
可能对 tvOS 9.1 有帮助。此代码写入 UITabBarController
.
的 viewDidLoad()
for item in self.tabBar.items!{
item.setTitleTextAttributes([NSForegroundColorAttributeName:UIColor.blackColor()], forState: UIControlState.Normal)
item.setTitleTextAttributes([NSForegroundColorAttributeName:UIColor.greenColor()], forState: UIControlState.Focused)
}
随着 tvOS 9.1 和 Xcode 7.2 的发布,我的 UITabBarItem
图片显示不正确。在我的视图控制器中,我使用 UIImageRenderingMode.AlwaysOriginal
.
tabBarItem.image
和 tabBarItem.selectedImage
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 的错误,但有没有人找到解决方法或发现我做错了什么?
我们在 tvos 应用程序中看到了类似的东西,只是我们使用文本而不是图像。 tvOS 9.1 忽略 textColor。
UITabBarItem.appearance().setTitleTextAttributes([
NSForegroundColorAttributeName: <barTextColor>
], forState: UIControlState.Normal)
UITabBarItem.appearance().setTitleTextAttributes([
NSForegroundColorAttributeName: <barTextColorSelected>,
], forState: UIControlState.Selected)
这似乎肯定是 tvOS 9.1 的 UITabBarController 实现中的错误。所以我最终写了自己的替代品。在此期间,我添加了对超过 7 个选项卡栏项目的支持,使其在黑色背景上看起来不错,并在其中一个选项卡上(也在黑色背景上)包含了一个搜索栏。这解决了我在尝试构建我的第一个 tvOS 应用程序时遇到的许多困难。
这已被 Apple 确认为错误,并已在 tvOS 9.1.1 中修复。
可能对 tvOS 9.1 有帮助。此代码写入 UITabBarController
.
viewDidLoad()
for item in self.tabBar.items!{
item.setTitleTextAttributes([NSForegroundColorAttributeName:UIColor.blackColor()], forState: UIControlState.Normal)
item.setTitleTextAttributes([NSForegroundColorAttributeName:UIColor.greenColor()], forState: UIControlState.Focused)
}