为 uinavigationbar 添加颜色

Posted

技术标签:

【中文标题】为 uinavigationbar 添加颜色【英文标题】:Adding colour to uinavigationbar 【发布时间】:2012-02-11 16:43:18 【问题描述】:

如何为navigation bar 添加颜色?我需要为ios 4 及更高版本实现此功能。

我想要一种类似于屏幕截图中的颜色:

【问题讨论】:

How to change color of the UINavigationBar & buttons on it? 的可能重复项...忽略已接受的答案 ;-) 您可以为 4 设置一个代码路径,为 5 设置一个代码路径,但不要打开操作系统版本。使用 respondsToSelector 进行测试。在此处查看相关帖子:***.com/questions/7800474/… 【参考方案1】:

在您发布的示例中,由于轻微的照明效果,它看起来更像是背景图像。 (中间更亮,你仔细看的话。在 IB 中,我将导航栏设置为黑色透明,并带有以下背景图像。(320 x 44px)

h 文件。

IBOutlet UINavigationBar *navBar;

m 文件“viewDidLoad”函数:

navBar.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"nav"]];

【讨论】:

嗯,我期待像你这样的东西,但你是如何在 Nav Bartime - the small bar where it shows the battery life etc 之间获得这么小的空间的? 其实,感谢您注意到这一点。这是我的 mainViewController 中的图像视图。木头应该一直到状态栏后面的顶部,所以我需要修复它,但是在设置图像视图的尺寸时,我只是将 UIImageView 设置为完整的 320x480,然后将 x 设置为 160(中心)和 y 到 220 而不是 240,这会将它推到状态栏后面。状态栏是 20px 高,即使你“垂直填充容器,你仍然需要手动向上移动它,我发现。 你是怎么把 UIButton 变成蓝色的?我想你可能在那里使用了一张图片。我尝试从 IB 添加一个图像,但它最终给出了一个白框,而不是它自己的图像。那么你能说出通过IB添加图片的正确方法吗?【参考方案2】:

在 iOS

// self is a UIViewController
[self.navigationController.navigationBar setTintColor:[UIColor purpleColor]];

一旦您不需要与 iOS 4.x 兼容,您就可以为 UINavigationBar 使用外观代理。这适用于应用程序中的所有导航栏:

[[UINavigationBar appearance] setTintColor:[UIColor purpleColor]];

【讨论】:

如果我只使用 iOS 4 代码,它适用于 iOS 4 和 5 吗? 第一个适用于 iOS 4 和 5,唯一的缺点是应用程序中有多个导航栏,您必须分别为每个导航栏设置颜色。 您也可以通过respondsToSelector进行测试和切换。在此处查看相关示例:***.com/questions/7800474/…

以上是关于为 uinavigationbar 添加颜色的主要内容,如果未能解决你的问题,请参考以下文章

如何在 UINavigationBar 中添加垂直渐变颜色?

UINavigationBar 的添加改变了 UITabBar 的背景颜色

模拟 UINavigationBar 标题的阴影偏移和颜色值是多少?

iOS 7 中忽略的条形按钮项目着色

UINavigationBar 自定义颜色与在情节提要中嵌入 UInavigationController

UINavigationBar 自定义标题视图