如何更改UINavigationItem的背景颜色?

9 浏览
0 Comments

如何更改UINavigationItem的背景颜色?

我有一个UINavigationItem,但在属性检查器中除了标题、提示和返回按钮之外找不到其他内容。

我想知道如何使用代码或以编程的方式更改UINavigationItem的背景颜色?

0
0 Comments

如何更改UINavigationItem的背景颜色?

在UINavigationItem中更改背景颜色的方法有很多种,其中一种可能的解决方法是将包含Navigation Item的View Controller嵌入到Navigation Controller中,并访问Navigation Bar的颜色属性。

下面是一种解决方法的示例代码:

// 设置导航栏标题颜色

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

// 设置导航栏背景颜色

UINavigationBar.appearance().barTintColor = UIColor.blackColor()

// 设置导航栏标题颜色

let color = UIColor.orangeColor()

self.navigationController?.navigationBar.topItem?.backBarButtonItem?.setTitleTextAttributes(

[NSForegroundColorAttributeName: color], forState: .Normal)

通过使用上述代码,您可以将UINavigationItem的背景颜色更改为所需的颜色。

0
0 Comments

问题出现的原因是用户想要改变UINavigationItem的背景颜色,但是尝试使用UINavigationBar的background属性无效。解决方法是使用barTintColor属性来改变UINavigationBar的背景颜色。具体实现代码如下:

self.navigationController.navigationBar.barTintColor = UIColor.redColor()

根据官方文档的说明,要改变导航栏的背景颜色,需要访问barTintColor属性。具体的文档描述如下:

The tint color to apply to the navigation bar background.

如果想要编辑导航栏的样式,比如按钮颜色,应该访问barTint属性。如果想要编辑navigationItem的样式,比如返回按钮,应该编辑button属性,而不是UINavigationItem本身。

建议用户学会阅读官方文档,文档链接如下:

[developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UINavigationBar_Class/index.html#//apple_ref/occ/instp/UINavigationBar/barTintColor](developer.apple.com/library/p...)

0
0 Comments

问题出现的原因是用户想要改变UINavigationItem的背景颜色,但是在界面属性检查器中只有三个选项,无法直接更改背景颜色。解决方法是通过代码来改变背景颜色。

对于Objective-C,可以在viewDidLoad方法中加入以下代码:

self.navigationController.navigationBar.barTintColor = [UIColor redColor];

对于Swift,有以下两种解决方法:

方法一:

self.navigationController?.navigationBar.barStyle = UIBarStyle.BlackTranslucent

self.navigationController?.navigationBar.barTintColor = UIColor.redColor();

方法二:

self.navigationController!.navigationBar .setBackgroundImage(UIImage .new(), forBarMetrics: UIBarMetrics.Default)

self.navigationController!.navigationBar.shadowImage = UIImage .new();

self.navigationController!.navigationBar.translucent = true;

self.navigationController!.navigationBar.backgroundColor = UIColor.redColor();

如果想要改变导航栏文字的颜色,可以使用以下代码:

navigationController.navigationBar.titleTextAttributes = [UITextAttributeTextColor: UIColor.blueColor()]

具体的解决方法可以参考这个链接:[Here](https://stackoverflow.com/questions/24687238)

以上是用户询问的问题以及解决方法的整理。

0