【问题标题】:TabBar highlight not displayed in iOS 7iOS 7 中未显示 TabBar 高亮显示
【发布时间】:2013-12-28 23:36:27
【问题描述】:

在IOS 6.x中选择了选项卡时,如下图所示,突出显示(选择最后选项卡并因此突出显示)。

但在 iOS 7 中,它不会显示此突出显示,如下图所示。

当标签有文本时没有问题,因为我可以将 TabBar 视图颜色设置为白色(我已经为图像中的 TabBar 这样做了)。但是当标签只有图像时,选择和未选择的选项卡看起来相同。有图片标签的解决方法吗?

注意:我使用 TabBar 背景图片(黑色)。此应用支持 iOS 6.1 及更高版本。

【问题讨论】:

标签: ios iphone ios7 uitabbar uitabbaritem


【解决方案1】:

这是 iOS 7 中的默认行为。当有图像时,您可以设置 UITabbar 的 tintColor 来设置所选标签的突出显示颜色。

myTabBarController.myTabBar.barTintColor = [UIColor whiteColor]; //This will set the bar color

myTabBarController.myTabBar.tintColor = [UIColor orangeColor]; //This will set the selected icon color

阅读 UI 转换指南:https://developer.apple.com/library/ios/documentation/userexperience/conceptual/transitionguide/Bars.html#//apple_ref/doc/uid/TP40013174-CH8-SW1

【讨论】:

  • 我正在使用标签栏背景(黑色)。所以 tintColor 不起作用。它将隐藏在我的背景图片后面。
  • 这不适用于 iOS 7。阅读转换指南。
【解决方案2】:

是的。您必须使用以下代码。因为在IOS6.x中,如果selectorIndicatorImage的值为nil,则生成透明图像。试试这个,希望对你有帮助。

#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v)  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)

if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0"))
            self.tabBar.selectionIndicatorImage = [UIImage imageNamed:@"tabbaritembackground_Selected.png"];

【讨论】:

  • 这行得通。但我没有选择图像。我想使用 SDK 高亮功能。
  • 基本上,IOS 7 引入了简单的扁平化设计,苹果强制开发者使用它。因此,您必须根据需要设置选择图像。据我所知,SDK 没有提供它。您可以使用代码创建自定义图像。看到这个http://stackoverflow.com/questions/6496441/creating-a-uiimage-from-a-uicolor-to-use-as-a-background-image-for-uibutton
  • 我使用图像作为选择突出显示。这是最简单的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-13
  • 2011-07-06
  • 1970-01-01
  • 1970-01-01
  • 2012-01-03
  • 2013-12-04
  • 1970-01-01
相关资源
最近更新 更多