代码之家  ›  专栏  ›  技术社区  ›  Pedro

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

  •  0
  • Pedro  · 技术社区  · 14 年前

    全天

    这是一个小细节,但它确实影响我的应用程序的专业完成。

    我的应用程序遵循一个标签栏的模式,每个标签上有一个导航栏,有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
    

    除了苹果警告(出于一些我认为合理的原因)不要覆盖像这样的隐藏方法之外,它还失去了 导航栏 &我宁愿保留当前设置色调的方法 viewDidLoad 做。

    关于我怎么吃蛋糕的建议。

    蒂娅,佩德罗:)

    2 回复  |  直到 14 年前
        1
  •  2
  •   Community CDub    8 年前

    它已经被覆盖了 before on StackOverflow ,它指向 this blog ,但答案是执行以下操作:

    tabBarController.moreNavigationController.navigationBar.tintColor =
    [UIColor orangeColor];
    
        2
  •  1
  •   tc.    14 年前

    将类别添加到UINavigationBar并覆盖-drawRect:?(然后你可以做一些有趣的事情,比如画一个图片来代替…)