iphone - uinavigationcontrollerdelegate - uiviewcontroller navigationcontroller




IOS 7导航栏文本和箭头颜色 (7)

Vin的回答对我很好。 对于使用Xamarin.iOS / MonoTouch的C#开发人员,这是同样的解决方案:

var navigationBar = NavigationController.NavigationBar; //or another reference
navigationBar.BarTintColor = UIColor.Blue;
navigationBar.TintColor = UIColor.White;
navigationBar.SetTitleTextAttributes(new UITextAttributes() { TextColor = UIColor.White });
navigationBar.Translucent = false;

我想将导航栏的背景设置为黑色,并将其中的所有颜色设置为白色

所以,我使用这个代码:

[[UINavigationBar appearance] setTitleTextAttributes:
     [NSDictionary dictionaryWithObjectsAndKeys:
      [UIColor whiteColor],
      NSForegroundColorAttributeName,
      [UIColor whiteColor],
      NSForegroundColorAttributeName,
      [NSValue valueWithUIOffset:UIOffsetMake(0, -1)],
      NSForegroundColorAttributeName,
      [UIFont fontWithName:@"Arial-Bold" size:0.0],
      NSFontAttributeName,
      nil]];

但后退按钮的文字颜色箭头酒吧按钮仍然是默认的蓝色
如何更改下面的图像上的颜色?


Swift / iOS8

let textAttributes = NSMutableDictionary(capacity:1)
textAttributes.setObject(UIColor.whiteColor(), forKey: NSForegroundColorAttributeName)
navigationController?.navigationBar.titleTextAttributes = textAttributes

如果你想改变标题的文本大小文本颜色,你必须改变NSDictionary titleTextAttributes ,对于它的两个对象:

    self.navigationController.navigationBar.titleTextAttributes = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"Arial" size:13.0],NSFontAttributeName,
                                                                  [UIColor whiteColor], NSForegroundColorAttributeName, 
                                                                  nil];

我认为以前的答案是正确的,这是做同样事情的另一种方式。 如果它对某人有用,我会在这里与其他人分享。 这就是你如何在ios7中更改导航栏的文本/标题颜色:

UIColor *red = [UIColor colorWithRed:254.0f/255.0f green:0.0f/255.0f blue:0.0f/255.0f alpha:1.0];
NSMutableDictionary *navBarTextAttributes = [NSMutableDictionary dictionaryWithCapacity:1];
[navBarTextAttributes setObject:red forKey:NSForegroundColorAttributeName ];
self.navigationController.navigationBar.titleTextAttributes = navBarTextAttributes;

看起来, iOS Settings中的Accessibility控件几乎覆盖了您尝试对导航栏按钮进行色彩处理的所有内容。 确保将所有设置都设置为默认位置(设置增加对比度, 粗体文本 ,按钮形状等),否则您将看不到任何更改。 一旦我做到了,所有的颜色更改代码都按预期开始工作。 你可能不需要把它们都关掉,但我没有进一步追求它。


要更改UINavigationBar标题的颜色,请使用以下代码:

[self.navigationController.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObject:[UIColor whiteColor] forKey:UITextAttributeTextColor]];

UITextAttributeTextColor在最新的ios 7版本中已弃用。 改为使用NSForegroundColorAttributeName


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




ios7