Установить цвет фона для UINavigationBar

Я хочу развиваться UINavigationBar а также установить цвет фона для этого. Я создал UINavigationBar но у меня проблема с установкой backgroundcolor. Кто-нибудь, пожалуйста, помогите мне. Благодарю.

10 ответов

Решение
[self.navigationController.navigationBar setBackgroundColor:[UIColor redColor]];

Попробуй вот так. Я думаю, что это будет полезно для вас.

Редактировать: обновил код для фактической компиляции.

В новых iOs вот как это работает:

self.navigationController.navigationBar.barStyle  = UIBarStyleBlackOpaque;
self.navigationController.navigationBar.barTintColor =[UIColor colorAzulNavegacion];

Я должен искать это каждый раз, поэтому добавляю свой ответ здесь (Свифт). Код ниже устанавливает это для всех панелей навигации в приложении. Вы можете установить каждый из них на отдельных панелях навигации, если хотите.

Вы можете установить полупрозрачность, цвет текста заголовка, цвет фона (это называется barTintColor, спасибо, Apple!) И цвет переднего плана элемента панели, например:

    // Title text color Black => Text appears in white
    UINavigationBar.appearance().barStyle = UIBarStyle.Black

    // Translucency; false == opaque
    UINavigationBar.appearance().translucent = false

    // BACKGROUND color of nav bar
    UINavigationBar.appearance().barTintColor = UIColor.redColor()

    // Foreground color of bar button item text, e.g. "< Back", "Done", and so on.
    UINavigationBar.appearance().tintColor = UIColor.whiteColor()

Вы можете установить цвет оттенка с помощью navbar.tintColor = [UIColor redColor];

Смотрите ссылку здесь: Apple Docs

Вы можете использовать свойство tint UINavigationBarизменить его цвет. Проверьте эту статью об этом. Существует также UIAppearance, что позволяет менять фон каждого UINavigationBar вашего приложения, которое, на мой взгляд, достаточно мощное. Вы можете проверить это.

self.navigationController?.navigationBar.translucent = false

self.navigationController?.navigationBar.barTintColor = UIColor.redColor ()

self.navigationController?.navigationBar.barStyle = UIBarStyle.BlackTranslucent

Попробуй это:

navigationBar.tintColor = [UIColor blackColor];

Вы можете настроить UINavigationBar со следующими свойствами:

  • @property(nonatomic, assign) UIBarStyle barStyle
  • @property(nonatomic, retain) UIColor *tintColor
  • setBackgroundImage:forBarMetrics:
  • @property(nonatomic, copy) UIColor *backgroundColor

Для получения дополнительных методов и свойств, пожалуйста, проверьте ссылку на класс UINavigationBar а также UIView

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

Здесь речь идет о том, чтобы сделать что-то полезное. В этом случае программным образом создается/настраивается элемент и элемент панели навигации и устанавливается черный фон, а заголовок светло-серый.

Свифт 5, iOS 15

      @objc func addButtonPushed() {
    print("Add button!")
}

override func viewWillAppear(_ animated: Bool) {
    
    super.viewWillAppear(animated)

    let rightButton = UIBarButtonItem(image: UIImage(systemName: "plus"), style: .plain,
                                      target:self, action: #selector(addButtonPushed))

    let standaloneItem     = UINavigationItem()
    standaloneItem.title   = "Herding Cats"
    standaloneItem.rightBarButtonItem  = rightButton
    navBar.items           = [standaloneItem]
    navBar.delegate        = self
    navBar.barStyle        = UIBarStyle.default
    navBar.isTranslucent   = true
    navBar.barTintColor    = .black
    navBar.titleTextAttributes = [.foregroundColor: UIColor.lightGray]
    
    . 
    .
    .

}

Другие вопросы по тегам