iPhone - 如何在“更多”项目的导航栏中设置自定义颜色?

时间:2010-11-23 07:39:45

标签: iphone uinavigationbar uitabbar tintcolor

G'day All

这是一个小细节,但确实会影响我的应用的专业效果。

我的应用程序遵循标签栏的模式,每个标签上都有一个导航栏,标签超过5个,因此“更多”项目。我有一个自定义色调应用于导航栏但我无法找到一种方法来访问“更多”项目的导航栏来设置它的色调。谁能告诉我怎么样?

...更新

根据UINavigationBar上的类别建议,我使用了此代码......

@implementation UINavigationBar (UINavigationBar_Additions)

- (void)drawRect:(CGRect)rect {
    UIColor *color = [UIColor colorWithRed:0.862745098039216
                                     green:0.568627450980392
                                      blue:0.098039215686275
                                     alpha:1];
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetFillColor(context, CGColorGetComponents( [color CGColor]));
    CGContextFillRect(context, rect);
    [self setBarStyle:UIBarStyleBlack];
    [self setTintColor:color];
}

@end

除了Apple的警告(出于对我来说似乎有意义的原因)关于不覆盖这样的隐藏方法,它也会失去UINavigationBar&上的渐变。我宁愿保留我目前在viewDidLoad中设置色调的方法。

关于如何获得蛋糕的建议也吃它。

TIA,佩德罗:)

2 个答案:

答案 0 :(得分:2)

已涵盖before on StackOverflow,其中指向this blog,但答案是执行以下操作:

tabBarController.moreNavigationController.navigationBar.tintColor =
[UIColor orangeColor];

答案 1 :(得分:1)

向UINavigationBar添加一个类别并覆盖-drawRect:? (然后你可以做一些有趣的事情,比如绘制图像......)