2015-09-15 3 views
0

У меня есть код в AppDelegate.m, который устанавливает все UINavigationBar шестигранные цвета на # 125687Цветовой оттенок отличается от второго UINavigationBar

код из 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)]; 

Вот вопрос: я положите два UINavigationBars друг на друга в viewcontroller, чтобы UINavigationBar попал под строку состояния. Панель навигации в строке состояния находится ниже основного навигационного блока. Вторая панель навигации отличается от основного.

Вот как это выглядит:

enter image description here

(Вторая панель навигации является навигационная панель, которая имеет более светлый цвет, что бар с названием «Community»)

Вопрос: Как я могу это исправить, так как UINavigationBars имеют одинаковый гексагон (# 125687)?

+0

Http: // www.appcoda.com/customize-navigation-status-bar-ios-7/ – Adrian

+0

Мой вопрос в том, зачем использовать две панели навигации, когда вы можете использовать панель навигации 64px, которая непосредственно идет ниже вашего стата мы бар? –

+0

@GaneshSomani есть все равно, чтобы изменить высоту навигационной панели –

ответ

1

Не используйте два навигационной панели.

Вы можете просто расширить навигационную панель. Либо вы можете вставлять ваш UIViewController в UINavigationController

Или

Для продлив единой навигационной панели ниже строки состояния вы можете использовать следующие

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

См this answer

-1

Конор из UIStatusBar получает автоматически устанавливается в соответствии с цветом UINavigationBar с:

self.navigationController.navigationBar.barTintColor 

Пожалуйста, попробуйте установить это до нужного цвета.

EDIT:

Вместо 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]; 
+0

В какой файл он входит? –

+0

В моем случае я создал подкласс 'UINavigationController' и внедрил его там. Все мои контроллеры просмотра используют мой собственный класс контроллера навигации. Конечно, я сделал это, чтобы написать несколько таких общих функций. Вы можете поместить его в 'AppDelegate'. – Abhinav

+0

У меня ошибка: «Property» navigationController не найден на объекте типа «AppDelegate» –