Подтвердить что ты не робот

UINavigationBar, установленный tintcolor, проверенный в iOS7, не работает?

У меня есть приложение, у которого есть UINavigationBar, и я установил цвет оттенка как черный:

self.navigationController.navigationBar.tintColor = [UIColor blackColor];`

Я тестировал его в IOS 6, и он черный. Тем не менее, он появляется как панель навигации по умолчанию, когда я пробовал одно и то же приложение в iOS 7.

Как говорится в названии, не работает ли он?

4b9b3361

Ответ 1

Вам нужно установить свойство barTintColor.

Вы можете указать цвет настраиваемого оттенка для фона навигационной панели, используя поле Tint (barTintColor). Цвет фона по умолчанию - белый.

Из документов iOS7: https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/UIKitUICatalog/UINavigationBar.html#//apple_ref/doc/uid/TP40012857-UINavigationBar-SW1

Ответ 2

Ответы Фернандо и Санджаны имеют ключ, но я просто добавлю что-то, чтобы сделать его более ясным и более очевидным.

Навигационная панель имеет два свойства

  • tintColor
  • barTintColor

Это немного вводит в заблуждение, когда вы не думаете в терминах iOS 7.

tintColor изменяет цвет кнопок на панели навигации. Чтобы изменить цвет фона, вам нужно установить свойство barTintColor.

self.navigationController.navigationBar.barTintColor = [UIColor whiteColor];
self.navigationController.navigationBar.tintColor = [UIColor greenColor];

Этот фрагмент кода даст вам белую навигационную панель с зелеными кнопками.

Ответ 3

Я использовал следующий код, чтобы изменить цвет оттенка панели навигации в iOS7, я добавил это в приложении делегата "applicationDidFinishLaunch", и его работа прекрасна для меня:

/* ios 7 Change */
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7)
    {
        [[UINavigationBar appearance] setBarTintColor:UIColorFromRGB(0x4B678B)];
        NSShadow *shadow = [[NSShadow alloc] init];
        shadow.shadowColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.8];
        shadow.shadowOffset = CGSizeMake(0, 1);
        [[UINavigationBar appearance] setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys:
                                                               [UIColor colorWithRed:245.0/255.0 green:245.0/255.0 blue:245.0/255.0 alpha:1.0], NSForegroundColorAttributeName,
                                                               shadow, NSShadowAttributeName,
                                                               [UIFont fontWithName:@"Helvetica Neue" size:21.0], NSFontAttributeName, nil]];
        // self.navigationController.navigationBar.barTintColor = [UIColor blueColor];
        //[self.navigationController.navigationBar setBarStyle:UIBarStyleBlackTranslucent];
        [[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];

    }

Ответ 4

Для меня работает следующий код:

self.navigationController.navigationBar.barTintColor = [UIColor blackColor];

Ответ 5

Имел ту же проблему, но решил ее через файл раскадровки.

Попробуйте следующее.

  • Откройте файл .storyboard.
  • Выберите сцену с контроллером навигации
  • Выберите пункт "Панель навигации" в сцене диспетчера навигации enter image description here

  • Откройте вкладку "Утилиты" в правой части XCode

  • Инспектор открытых атрибутов
  • В группе "Панель навигации" появится раскрывающийся список Bar Tint. Вы можете выбрать любой цвет для оттенка. enter image description here

Ответ 6

    [UINavigationBar appearance].tintColor = [UIColor redColor];
    if ([[UINavigationBar appearance] respondsToSelector:@selector(setBarTintColor:)]) {
        [UINavigationBar appearance].barTintColor   = [UIColor redColor];
    }

//OR

    self.navigationController.navigationBar.tintColor = [UIColor redColor];
    if ([self.navigationController.navigationBar respondsToSelector:@selector(setBarTintColor:)]) {
        self.navigationController.navigationBar.barTintColor    = [UIColor redColor];
    }