更改UINavigationItem颜色 [英] Change UINavigationItem colour

查看:100
本文介绍了更改UINavigationItem颜色的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要为我的UINavigationBar按钮设置自定义颜色。
我正在做以下事情(RGB func是一个定义):

I need to set custom colors to my UINavigationBar buttons. I'm doing the following thing(RGB func is a define):

- (void)viewWillAppear:(BOOL)animated
{

for (UIView *view in self.navigationController.navigationBar.subviews)      
    if ([[[view class] description] isEqualToString:@"UINavigationButton"])
        [(UINavigationButton *)view setTintColor:RGB(22.0,38.0,111.0)];

 }

应用程序加载时一切正常。离开视图并返回后,颜色返回默认值。

Everything looks fine on app load. after leaving the view and getting back the color returns to default.

其次,我需要将相同的颜色设置为UISegmentedControl到按下的按钮。

Secondly I need to set the same colour to UISegmentedControl to a pressed button.

推荐答案

以下是一种方式:

[[theNavigationBar.subviews objectAtIndex:1] setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
[[theNavigationBar.subviews objectAtIndex:2] setTitleColor:[UIColor redColor] forState:UIControlStateNormal];

然而,巨大的,警告。这很有可能打破未来的操作系统版本,不推荐使用。

However, HUGE, caveat. This is highly likely to break on a future OS release and is not recommended.

至少你应该进行大量的测试,并确保你的假设是导航栏的子视图布局是正确的。

您可以通过更改UINavigationBar的tintColor属性来更改颜色

At the very least you should perform a lot of testing and make sure you your assumptions of the subview layout of the navigation bar are correct. or You can change the color by changing the tintColor property of the UINavigationBar

myBar.tintColor = [UIColor greenColor];


您可以点击以下链接
http://www.skylarcantu.com/blog/2009/11/05/改变颜色的uinavigationbarbuttons /

这篇关于更改UINavigationItem颜色的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆