首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在iOS 7中更改导航栏颜色?

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

Stack Overflow用户
提问于 2013-09-21 14:59:29
回答 18查看 293.2K关注 0票数 216

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

基本上我想实现像推特导航栏这样的东西(为iOS7更新推特)。我嵌入在view controller上的导航栏里。我想要的是将导航栏的颜色更改为浅蓝色,以及顶部的工具栏。我似乎在我的storyboard里找不到一个选项。

EN

回答 18

Stack Overflow用户

发布于 2013-09-21 15:13:27

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

从文档中:

barTintColor Class Reference

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

代码语言:javascript
复制
@property(nonatomic, retain) UIColor *barTintColor

讨论

默认情况下,除非将半透明属性设置为NO,否则此颜色将变为半透明。

Availability

在iOS 7.0及更高版本中可用。

在中声明的

UINavigationBar.h

代码

代码语言:javascript
复制
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 7 UI Transition Guide中提到的iOS版本

代码语言:javascript
复制
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编辑

票数 320
EN

Stack Overflow用户

发布于 2014-10-17 17:16:40

按照原来的问题来做--得到老的Twitter导航栏外观,蓝色背景和白色文本--只需在Xcode中使用Interface Builder就可以很容易地做到。

  • 使用文档大纲,选择导航栏。
  • 在属性检查器的导航栏组中,将样式从默认更改为黑色。这会将导航栏和状态栏的背景颜色更改为黑色,并将其文本更改为白色。因此,当应用程序运行时,状态栏中的电池和其他图标以及文本将显示为白色。
  • 在同一导航栏组中,将栏着色更改为您喜欢的颜色。
  • 如果导航栏中有栏按钮项,这些项目仍将以默认蓝色显示其文本,因此在属性检查器的视图组中,将色调更改为白色。

这应该能让你得到你想要的。这是一个屏幕截图,可以更容易地看到在哪里进行更改。

请注意,仅更改Bar Tint不会更改导航栏或状态栏中的文本颜色。风格也需要改变。

票数 129
EN

Stack Overflow用户

发布于 2013-09-21 15:05:22

代码语言:javascript
复制
self.navigationBar.barTintColor = [UIColor blueColor];
self.navigationBar.tintColor = [UIColor whiteColor];
self.navigationBar.translucent = NO;

// *barTintColor* sets the background color
// *tintColor* sets the button's color
票数 79
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18929864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档