我需要为我的UINavigationBar按钮设置自定义颜色。 我正在做以下事情(RGB func是一个定义):
- (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)];
}
应用程序加载一切正常。离开视图并返回后,颜色将恢复为默认值。
其次,我需要将相同的颜色设置为UISegmentedControl到按下的按钮。
答案 0 :(得分:1)
[更改UINavigationItem颜色](http://www.skylarcantu.com/blog/2009/11/05/changing-colors-of-uinavigationbarbuttons/“更改UINavigationBarButtons的颜色”)和to set same color to UISegmentControl将有助于你到达目的地。
Here是将颜色设置为UISegmentControl的示例代码。
答案 1 :(得分:0)
这是一种方式:
[[theNavigationBar.subviews objectAtIndex:1] setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
[[theNavigationBar.subviews objectAtIndex:2] setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
然而,巨大的,警告。这很可能会破坏未来的操作系统版本,不推荐使用。
至少你应该进行大量的测试,并确保你对导航栏的子视图布局的假设是正确的。 要么 您可以通过更改UINavigationBar
的tintColor属性来更改颜色myBar.tintColor = [UIColor greenColor];
或 您可以点击以下链接 http://www.skylarcantu.com/blog/2009/11/05/changing-colors-of-uinavigationbarbuttons/
答案 2 :(得分:0)
对于IOS5,必须使用"setBackgroundImage:forBarMetrics:"
尝试此代码以应用所有UINavigationItem / UINavigationBar
if([[UINavigationBar class] respondsToSelector:@selector(appearance)]){ //iOS >=5.0
//use for UINavigationBar Custom image.
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageWithNamed:@"navImage.png"] forBarMetrics:UIBarMetricsDefault];
//use for UINavigationItem custom color
[[UINavigationBar appearance] setTintColor:[UIColor greenColor]];
}