我想将导航栏的背景设置为 black ,其中的所有颜色都是 white .
所以,我使用了这段代码:
[[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]];
但后退按钮 text color , arrow 和 bar button 仍然默认为 blue color .
如何改变这些颜色,如下图所示?
10 回答
似乎
iOS Settings
中的Accessibility
控件几乎覆盖了您尝试对导航栏按钮执行颜色的所有操作 . 确保你将所有设置都设置为默认位置(设置增加对比度, bold text ,按钮形状等关闭),否则你会进一步追求它 .要更改
UINavigationBar
Headers 的颜色,请使用以下代码:UITextAttributeTextColor
在最新的ios 7版本中已弃用 . 请改用NSForegroundColorAttributeName
.Vin的回答对我很有帮助 . 以下是使用Xamarin.iOS / MonoTouch的C#开发人员的相同解决方案:
如果您要更改 Headers text size 和 text color ,则必须更改NSDictionary titleTextAttributes,对于其中的两个对象:
我认为以前的答案是正确的,这是做同样事情的另一种方式 . 我在这里与其他人分享,以防万一它对某人有用 . 这是您可以在ios7中更改导航栏的文本/ Headers 颜色的方法:
UINavigationBar
的某些属性的行为已从 iOS 7 更改 . 您可以在下面显示的图像中看到:我想与你分享两个美丽的链接 . 有关详细信息,您可以浏览以下链接:
iOS 7 UI Transition Guide .
How to Update Your App for iOS 7 .
Apple Documentation for barTintColor说:
Sample Code :
Swift3, ios 10
要在AppDelegate
didFinishLaunchingWithOptions
中全局指定颜色:Swift 4, iOS 11
Swift / iOS8
这个花了我大约半天时间弄明白,但这对我有用 . 在初始化navigationController的rootViewController中,我将此代码放在viewDidAppear方法中:
我的完整帖子here