2017-02-22 2 views
1

Я хочу изменить цвет текста UITabBarControllers после его загрузки на основе действий пользователей.Можно ли изменить цвет текста UITabBarController после его загрузки?

Я могу назвать это, и он правильно меняет шрифт и цвет при его запуске.

let appearance = UITabBarItem.appearance() 
let attributes: [String: AnyObject] = [NSFontAttributeName:UIFont(name: "American Typewriter", size: 12)!, NSForegroundColorAttributeName: UIColor.green] 
appearance.setTitleTextAttributes(attributes, for: .normal) 

Когда я пытаюсь позвонить в любое время после того, как приложение полностью запущено, ничего не происходит.

Возможно ли это, или это одно время, которое вы можете сделать при запуске?

+0

Вы можете проверить с 'UITabBarItem.appearance() setTitleTextAttributes. ([NSForegroundColorAttributeName: UIColor.redColor()], Форстате: .selected)' или Нормальное состояние сделать '.Normal' –

+0

Или проверить с' tabBarController .tabBar' tintColor –

+0

Вы должны попробовать это - http://stackoverflow.com/questions/31117069/changing-tab-bar-item-image-and-text-color-ios –

ответ

0

Похоже, если я перебираю все элементы и устанавливаю их вручную, это работает. Затем мне нужно переустановить выбранный цвет элементов.

Все еще не уверен, почему другой способ не будет работать?

for myItem in (tabBar.items)! { 
    myItem.setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.red], for: .normal) 
} 

tabBar.selectedItem?.setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.green], for: .normal) 
Смежные вопросы