20

我在将文本和状态栏文本颜色更改为白色时遇到问题。

我希望所有的黑色文本都是白色的,有什么想法吗?

我见过很多解决方案,但似乎没有一个适用于 iOS 7

4

6 回答 6

56

我的解决方案是将以下内容添加到 AppDelegate:

[[UINavigationBar appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]}];

斯威夫特 3:

UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: UIColor.white]

斯威夫特 5:

UINavigationBar.appearance().titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white]

iOS 13中,您可以使用以下方式设置导航栏本身的外观UINavigationBarAppearance

let appearance = UINavigationBarAppearance()
appearance.titleTextAttributes = [.foregroundColor: UIColor.white]
appearance.largeTitleTextAttributes = [.foregroundColor: UIColor.white]

navigationBar.standardAppearance = appearance
于 2013-10-01T18:32:17.503 回答
29

要将您的标题文本颜色变为白色,请将其放入您的 viewDidLoad

self.navigationController.navigationBar.titleTextAttributes = @{UITextAttributeTextColor : [UIColor whiteColor]}

要将您的状态栏文本颜色更改为白色,请将其添加到您的视图中

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
于 2013-09-19T21:07:14.987 回答
12

您可能想要做几件事。

1)改变标题的颜色:

self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName : [UIColor whiteColor]};

2) 更改条形按钮的颜色:

self.navigationController.navigationBar.tintColor = [UIColor whiteColor];

3)在整个应用程序中使状态栏文本颜色为白色:

在您的项目 plist文件中:

  • 状态栏样式:UIStatusBarStyleLightContent
  • 查看基于控制器的状态栏外观:NO
  • 状态栏最初是隐藏的:NO
于 2013-11-06T19:45:43.930 回答
5

您可以使用以下内容:

[self.navigationController.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName]];
于 2014-04-04T10:31:08.640 回答
3

这就是我所做的..

执行以下操作以使整个应用程序的状态栏文本颜色为白色。

在您的项目plist文件上:

状态栏样式:UIStatusBarStyleLightContent

View controller-based status bar appearance: NO

Status bar is initially hidden: NO

如果您希望整个应用程序具有相同的行为,则无需实现preferredStatusBarStyle或调用。setNeedsStatusBarAppearanceUpdate

于 2013-09-21T17:44:05.323 回答
3

只需替换NSForegroundColorAttributeNameUITextAttributeTextColor

 self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName : [UIColor whiteColor]};
于 2015-08-17T09:33:05.477 回答