第二个UINavigationBar的色调不同

时间:2015-09-15 01:16:43

标签: ios objective-c xcode xcode6 uinavigationbar

我在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)];

问题在于:我在viewcontroller中将两个UINavigationBars放在彼此的顶部,因此UINavigationBar位于状态栏下。状态栏下方的导航栏位于主导航栏下方。 第二个导航栏的颜色与主要颜色不同。

这是它的样子:

enter image description here

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

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

2 个答案:

答案 0 :(得分:1)

请勿使用两个导航栏。

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

或者

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

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

参考this answer

答案 1 :(得分:-1)

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];