ios - 如何更改 iOS 7 中的导航栏颜色?

标签 ios ios7 storyboard uikit uinavigationbar

如何在 iOS 7 中更改导航栏颜色?

基本上,我想实现类似 Twitter 导航栏的功能(针对 iOS7 更新了 Twitter)。我在 view controller 上嵌入了一个导航栏。我想要的只是将导航栏颜色与顶部的实用工具栏一起更改为浅蓝色。我似乎无法在我的 storyboard 中找到选项。

最佳答案

tintColor 的行为在 iOS 7.0 中发生了变化。它不再影响栏的背景。

来自文档:

barTintColor Class Reference

应用于导航栏背景的色调。

@property(nonatomic, retain) UIColor *barTintColor

讨论
除非您将半透明属性设置为 NO,否则此颜色默认为半透明。

可用性

适用于 iOS 7.0 及更高版本。

声明于
UINavigationBar.h

代码

NSArray *ver = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];
if ([[ver objectAtIndex:0] intValue] >= 7) {
    // iOS 7.0 or later   
    self.navigationController.navigationBar.barTintColor = [UIColor redColor];
    self.navigationController.navigationBar.translucent = NO;
}else {
    // iOS 6.1 or earlier
    self.navigationController.navigationBar.tintColor = [UIColor redColor];
}

我们还可以使用它来检查 iOS 版本,如 iOS 7 UI Transition Guide 中所述

if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) {
        // iOS 6.1 or earlier
        self.navigationController.navigationBar.tintColor = [UIColor redColor];
    } else {
        // iOS 7.0 or later     
        self.navigationController.navigationBar.barTintColor = [UIColor redColor];
        self.navigationController.navigationBar.translucent = NO;
    }

编辑 使用 xib

enter image description here

关于ios - 如何更改 iOS 7 中的导航栏颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18929864/

相关文章:

ios - Storyboard更改未在模拟器/iphone 中更新

ios - iOS 上的自定义模板系统

ios - 如何等到位置经理代表 swift 调用?

ios - 如何在不同位置发布几乎相同版本的iOS应用

ios - 当 UINavigationController 妨碍时访问 UITableView(在 UISplitViewController 中)

ios - Rubymotion:表单更改时自动提交 formotion 表单

ios - ios 中的水平中心约束问题?

ios - iOS 11 UISearchController 上的 UIToolbar 按钮未调用操作

iphone - iOS 7 iBeacon 需要硬件吗?

ios - 如何 'cancel' 查看自定义容器 Controller 转换的外观转换