使用 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 界面生成器设置标签栏色调(背景)颜色的主要内容,如果未能解决你的问题,请参考以下文章