【问题标题】:Color shade is different on second UINavigationBar第二个 UINavigationBar 上的颜色阴影不同
【发布时间】:2015-12-11 03:00:49
【问题描述】:

我在 AppDelegate.m 中有一个代码,它将所有 UINavigationBar 十六进制颜色设置为 #125687

来自 AppDelegate.m 的代码

#define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]



@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

    [[UINavigationBar appearance] setBarTintColor:UIColorFromRGB(0x125687)];

问题是:我在视图控制器中将两个 UINavigationBar 叠放在一起,因此 UINavigationBar 位于状态栏下方。状态栏下方的导航栏位于主导航栏下方。 第二个导航栏的颜色与主导航栏不同。

它是这样的:

(第二个导航栏是颜色比标题为“社区”的导航栏颜色更浅的导航栏)

问题:如何修复它,使两个 UINavigationBar 具有相同的十六进制颜色 (#125687)?

【问题讨论】:

  • 我的问题是,当您可以使用直接位于状态栏下方的 64 像素导航栏时,为什么还要使用两个导航栏?
  • @GaneshSomani 无论如何都可以改变导航栏的高度
  • 我认为不同颜色的问题是导航栏有一些alpha值。因此,颜色重叠正在发生。有没有碰巧遇到这个问题stackoverflow.com/questions/19105766/…
  • 如果您移除状态栏下方的导航栏会怎样?

标签: ios objective-c xcode xcode6 uinavigationbar


【解决方案1】:

不要使用两个导航栏。

您可以简单地扩展您的导航栏。 您可以将UIViewController 嵌入到UINavigationController

或者

要在状态栏下方扩展您的单个导航栏,您可以使用以下内容

- (UIBarPosition)positionForBar:(id<UIBarPositioning>)bar {
   return UIBarPositionTopAttached;
}

参考this answer

【讨论】:

    【解决方案2】:

    UIStatusBar 的 Conor 会自动设置为与 UINavigationBar 的颜色匹配:

    self.navigationController.navigationBar.barTintColor
    

    请尝试将此设置为您想要的颜色。

    编辑:

    不是2个导航栏,你可以试试这个

    UIView *statusBarView = [[UIView alloc] initWithFrame:CGRectMake(0, -20, 320, 22)];
    statusBarView.backgroundColor = [UIColor yellowColor]; // Replace this with your color
    [self.navigationController.navigationBar addSubview:statusBarView];
    

    【讨论】:

    • 放入什么文件?
    • 就我而言,我创建了UINavigationController 的子类并在那里实现了它。我所有的视图控制器都使用我的自定义导航控制器类。当然,我这样做是为了让更多这样的常见功能编写一次。你可以把它放在AppDelegate
    • 我收到错误消息 - “在‘AppDelegate*’类型的对象上找不到属性‘navigationController’
    • 顺便说一句...您运行应用程序的 iOS 版本是什么?
    • 当我在手机上运行应用程序时,它是 8.4(最新版本)但目标设置为 7.0
    猜你喜欢
    • 2015-05-22
    • 1970-01-01
    • 2020-07-22
    • 2017-03-29
    • 2021-05-03
    • 1970-01-01
    • 1970-01-01
    • 2012-09-18
    • 2011-12-19
    相关资源
    最近更新 更多