使用 xcode 5 界面生成器设置标签栏色调(背景)颜色

Posted

技术标签:

【中文标题】使用 xcode 5 界面生成器设置标签栏色调(背景)颜色【英文标题】:using xcode 5 interface builder for setting tab bar tint (background) color 【发布时间】:2013-12-03 18:07:11 【问题描述】:

我对 ios 开发很陌生,我有以下问题。 在 xcode 5 的故事板中设计 tabBar 时,我意识到我无法为 ios 6 设置 tabBar 的背景颜色。

这似乎与在 ios6 中条形背景颜色为 tintColor 而在 ios 7 中更改为 barTintColor 的事实有关。

如果我将情节提要的“查看方式”参数更改为“iOS 6.1 和 Ealier”,我会看到背景颜色从我在属性编辑器 (Bar Tint) 中设置的正确值更改为 iOS 的标准值6.

当然,我可以从代码中设置值,但这不利于可维护性。

有没有办法在 xcode 5 界面构建器中为 iOS 6 定义这个值?

更新:由于到目前为止我还没有找到令人满意的解决方案,因此我使用以下解决方法。 我在属性检查器中将 tabBar 的背景颜色设置为视图中的属性“Bar Tint”和“Background”。 在我的应用委托中,我使用以下代码:

UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
UITabBar *tabBar = tabBarController.tabBar;

if ([[[UIDevice currentDevice] systemVersion] floatValue] < 7) 
    [tabBar setSelectedImageTintColor:tabBar.tintColor];
    tabBar.tintColor = tabBar.backgroundColor;

【问题讨论】:

您是否尝试过 tBar 属性检查器中标题为“视图”的部分中的“色调”选项? 是的,这是可行的,但 iOS 7 中使用“tint”值作为所选图标的色调颜色。如果不破坏 iOS 7 中的 ui,我无法更改。 【参考方案1】:

我遇到了同样的问题。 不幸的是,您必须在代码中保留 iOS 6 的兼容性,使用类似于以下内容:

// iOS 6 compatibility
NSString *reqSysVer = @"7.0";
NSString *currSysVer = [[UIDevice currentDevice] systemVersion];

if ([currSysVer compare:reqSysVer options:NSNumericSearch] == NSOrderedAscending) 
    [[UINavigationBar appearance] setTintColor:[UIColor colorWithRed:66.f/255.f green:173.f/255.f blue:179.f/255.f alpha:1.f]];
    [[UIBarButtonItem appearance] setTintColor:[UIColor colorWithRed:66.f/255.f green:173.f/255.f blue:179.f/255.f alpha:1.f]];

我不确定为什么 InterfaceBuilder 中的“色调”不起作用,但这不是我们的目标。

注意:如果要支持 iOS

【讨论】:

Tint 已从外观移到 UIView 作为属性或其他东西。

以上是关于使用 xcode 5 界面生成器设置标签栏色调(背景)颜色的主要内容,如果未能解决你的问题,请参考以下文章

设置选定的标签栏项目色调?

iphone - 标签栏设置图像色调颜色(状态)

在 XCode5 中设置约束

导航栏隐藏XCode时状态栏更改色调颜色

在 Xcode 7.2 中为图标图像使用 PDF

界面生成器中 UIButton 的标记值在 xcode 5 中消失了吗?