2016-06-01 5 views
-2

Я хочу изменить фон заголовка UI Navbar в iOS. Я хочу, чтобы конечный результат, чтобы выглядеть, как на картинке ниже:Установить цвет фона заголовка навигатора (swift)

enter image description here

Пожалуйста, дайте мне знать, если это возможно, или, если мне придется сделать обходной путь.

Changing navigation bar color in Swift не затрагивает цвет фона текста заголовка для UINavigationBar

+0

Возможный дубликат [Изменение цвета панели навигации в Swift] (http://stackoverflow.com/questions/24687238/changing-navigation-bar-color-in-swift) – brimstone

ответ

0

Так что в основном вам нужно добавить UIView в navigationBarTitleView. Затем добавьте метку или UIImageView в Uiview и Finaly, добавьте этот вид в TitleView. Итак, здесь я добавил ярлык в titleView. Надеюсь, что это будет собирается помочь вам: -

override func viewDidLoad() { 
    super.viewDidLoad() 
    let navBarView: UIView = UIView() 
    navBarView.frame = CGRectMake(0, 0, 100.0, 21.0) 

    let label: UILabel = UILabel() 
    label.frame = CGRectMake(0, 0, 90.0, 21.0) 
    label.text = "Your Title" 
    label.textAlignment = .Center 
    label.backgroundColor = UIColor.grayColor() 
    navBarView.addSubview(label) 
    self.navigationItem.titleView = navBarView 
    // Do any additional setup after loading the view, typically from a nib. 
} 

Так вот вывод: -

enter image description here

+0

Знаете ли вы, как я мог перемещать созданный ярлык? Я пробовал уже некоторое время без везения. –

+0

Не понял, что вы хотите сделать? –

+0

Я понял это: navigationBar.setTitleVerticalPositionAdjustment (CGFloat (-14), forBarMetrics: UIBarMetrics.Default) ' –

0

Ваш лучший выбор, чтобы использовать titleView свойство UINavigationBar. Попробуйте что-то вроде этого

// Create new label that will service as a title view 
    let titleView = UILabel() 
    /* customize label to heart's content */ 
    titleView.text = "TITLE HERE" 
    // Set your custom background color 
    titleView.backgroundColor = UIColor.grayColor() 
    // Now set this is as the titleView of the navigation bar 
    self.navigationItem.titleView = titleView 

Если у вас есть статический управляемый удалось UINavigationBar (не часть UINavigationController). Что-то вроде этого должно работать:

navBar.pushNavigationItem(self.navigationItem, animated: NO) 
+0

Ничего не появляется, когда я это делаю. Должно быть в viewDidLoad()? –

+0

@MattButler, где вы его положили? – penatheboss

+0

Я попробовал viewDidLoad() и viewWillAppear() –

0
class SomeNavigationController: UINavigationController { 

override func awakeFromNib() { 
    super.awakeFromNib() 

    self.navigationBar.topItem?.title = NavTitle 
    } 

} 

Я ссылается NavTitle от А константы скор класса. Надеюсь, это поможет!

Смежные вопросы