Изменение цвета выбранного элемента панели вкладок в раскадровке
Я хочу изменить мои элементы панели вкладок, чтобы быть розовым при выборе вместо синего по умолчанию.
Как я могу сделать это с помощью редактора раскадровки в Xcode 6?
вот мои текущие настройки, которые не работают, синий фон работает, но розовый не работает:

14 ответов:
добавить атрибут цвета времени выполнения с именем "tintColor" из раскадровки. Это работает(для Xcode 8 и выше).
Если вы хотите невыбранные цвета.. вы можете добавить
unselectedItemTintColorтоже.
это элегантное решение отлично работает на SWIFT 3.0 и SWIFT 4.0:
на раскадровке:
- выберите Панель Вкладок
- поставил Во Время Выполнения Атрибута под названием tintColor для нужного цвета Выбранный Значок на вкладке бар
- поставил Во Время Выполнения Атрибута под названием unselectedItemTintColor для нужного цвета элемент Невыбранный Значок на вкладке бар
Edit: протестировано с Xcode 8, для iOS 10 и выше
в Swift, используя xcode 7 (и более поздние версии), вы можете добавить следующее в свой AppDelegate.swift file:
UITabBar.appearance().tintColor = UIColor(red: 255/255.0, green: 255/255.0, blue: 255/255.0, alpha: 1.0)вот как выглядит полный метод:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // I added this line UITabBar.appearance().tintColor = UIColor(red: 255/255.0, green: 255/255.0, blue: 255/255.0, alpha: 1.0) return true }в примере выше мой элемент будет белым. "/255.0 " необходим, потому что он ожидает значение от 0 до 1. Для Белого, я мог бы просто использовать 1. Но для другого цвета вы, вероятно, будете использовать значения RGB.
Swift 3 / Xcode 10
если вы хотите сделать все элементы панели вкладок одного цвета (выбрано и не выбрано)...
Шаг 1
убедитесь, что ваши ресурсы изображений настроены на Render As = Шаблон Изображения. Это позволяет им наследовать цвет.
Шаг 2
используйте редактор раскадровки чтобы изменить настройки панели вкладок следующим образом:
- Set Панель Вкладок: Оттенок Изображения к цвету, который вы хотите, чтобы выбранный значок унаследовал.
- Set Tab Bar: Bar Tint к цвету, который вы хотите, чтобы панель вкладок была.
- Set Вид: Подкраска цвета вы хотите видеть в Редакторе раскадровки, это не влияет на цвет значка, когда ваше приложение бежать.
Шаг 3
шаги 1 и 2 изменят цвет выбранного значка. Если вы все еще хотите изменить цвет невыбранных элементов, вам нужно сделать это в коде. Я не нашел способ сделать это через редактор раскадровки.
создать пользовательский класс контроллера панели вкладок...
// TabBarController.swift class TabBarController: UITabBarController { override func viewDidLoad() { super.viewDidLoad() // make unselected icons white self.tabBar.unselectedItemTintColor = UIColor.white } }... и назначьте пользовательский класс для сцены панели вкладок контроллер.
Если вы выясните, как изменить цвет невыбранного значка с помощью редактора раскадровки, пожалуйста, дайте мне знать. Спасибо!
поместите этот код в viewDidLoad контроллера вида, который вы хотите изменить цвет
[[UITabBar appearance] setSelectedImageTintColor:[UIColor whiteColor]];
XCode 8.2, iOS 10, Swift 3: теперь есть на
tabBar:self.tabBar.unselectedItemTintColor = UIColor(red: 0/255.0, green: 200/255.0, blue: 0/255.0, alpha: 1.0)
Как-то мы не можем изменить цвет оттенка выбранного элемента панели вкладок, используя только раскадровку, поэтому я добавил ниже код в моем ViewDidLoad, надеюсь, что это поможет.
[[UITabBar appearance] setTintColor:[UIColor whiteColor]];
вы можете изменить цвета UITabBarItem по раскадровке, но если вы хотите изменить цвета по коду, это очень просто:
// используйте это для изменения цвета выбранного бара
[[UITabBar appearance] setTintColor:[UIColor blueColor]];// Это для изменения невыбранной панели (iOS 10)
[[UITabBar appearance] setUnselectedItemTintColor:[UIColor yellowColor]];// и эта строка для изменения цвета всех вкладках
[[UITabBar appearance] setBarTintColor:[UIColor whiteColor]];
это решение в Swift 3, которое работает в iOS 10:
во-первых, вы создаете свой собственный подкласс контроллера панели вкладок и добавляете его в свой контроллер вкладок в своей раскадровке. В
viewDidLoad()метод вы можете настроить панель вкладок. Здесь следует отметить, что наtabBarпредставляет цвет выбранного элемента, а не цвет невыбранных! Чтобы изменить цвет невыбранных элементов, я рекомендую зацикливаться на каждом элементе и используйте исходные цвета ваших изображений, чтобы они не отображались как серый автоматически.class CustomTabBarVC: UITabBarController { override func viewDidLoad() { super.viewDidLoad() self.tabBar.tintColor = AppColor.normalRed self.tabBar.barTintColor = .white self.tabBar.isTranslucent = true if let items = self.tabBar.items { for item in items { if let image = item.image { item.image = image.withRenderingMode( .alwaysOriginal ) } } } } }единственным недостатком этого подхода является то, что ваши изображения элементов должны уже иметь желаемый цвет, к которому вы стремитесь.
добавьте этот код в делегат приложения-did_finish_launching_with_options функция
UITabBar.appearance().tintColor = UIColor( red: CGFloat(255/255.0), green: CGFloat(99/255.0), blue: CGFloat(95/255.0), alpha: CGFloat(1.0) )поставить RGB нужного цвета
вы можете подкласс
UITabBarController, и заменить его в раскадровке. В вашемviewDidLoadреализация подкласса называют это:[self.tabBar setTintColor:[UIColor greenColor]];








Comments