Чи є спосіб змінити відтінок панелі вкладок на iOS 7 із білого із синіми значками за замовчуванням на інший кольоровий відтінок за допомогою різних кольорових кнопок?
Чи є спосіб змінити відтінок панелі вкладок на iOS 7 із білого із синіми значками за замовчуванням на інший кольоровий відтінок за допомогою різних кольорових кнопок?
Відповіді:
Спробуйте нижче:
[[UITabBar appearance] setTintColor:[UIColor redColor]];
[[UITabBar appearance] setBarTintColor:[UIColor yellowColor]];
Щоб підфарбувати неактивні кнопки, вставте нижче код у свої ВК viewDidLoad
:
UITabBarItem *tabBarItem = [yourTabBarController.tabBar.items objectAtIndex:0];
UIImage *unselectedImage = [UIImage imageNamed:@"icon-unselected"];
UIImage *selectedImage = [UIImage imageNamed:@"icon-selected"];
[tabBarItem setImage: [unselectedImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
[tabBarItem setSelectedImage: selectedImage];
Вам потрібно зробити це для всіх tabBarItems, і так, я знаю, що це потворно і сподіваюся, що це буде більш чистий спосіб.
Стрімкий:
UITabBar.appearance().tintColor = UIColor.red
tabBarItem.image = UIImage(named: "unselected")?.withRenderingMode(.alwaysOriginal)
tabBarItem.selectedImage = UIImage(named: "selected")?.withRenderingMode(.alwaysOriginal)
Для цього існує набагато простіший спосіб.
Просто відкрийте інспектор файлів і виберіть "глобальний відтінок".
Ви також можете встановити колір відтінку програми в Interface Builder. Меню «Глобальний відтінок» у розділі «Інструмент конструктора інтерфейсів» інспектора файлів дозволяє відкрити вікно «Кольори» або вибрати певний колір.
Також див.
iOS 7.1.1
Якщо комусь потрібно буде використовувати глобально встановлений колір відтінку:
[[UIView appearance] setTintColor:[UIColor whiteColor]];
У didFinishLaunchingWithOptions
з AppDelegate
.
Також нижче код змінить лише колір відтінку панелі вкладок у будь-якому viewDidLoad
способі:
[self.tabBarController.tabBar setTintColor:[UIColor redColor]];
У делеґаті програми didFinishLaunchingWithOptions:
window.tintColor = [UIColor purpleColor];
встановлює глобальний колір відтінку для програми.
Що, нарешті, у мене спрацювало:
[self.tabBar setTintColor:[UIColor redColor]];
[self.tabBar setBarTintColor:[UIColor yellowColor]];
У розділі " Інспектор атрибутів " контролера панелі вкладок у Конструкторі інтерфейсів переконайтеся, що для нижньої панелі встановлено непрозору панель вкладок:
Тепер перейдіть до вашого файлу AppDelegate.m . Знайти:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
А потім додайте цей код між фігурними дужками, щоб змінити кольори як кнопок панелі вкладок, так і фону панелі вкладок:
///----------------SET TAB BAR COLOR------------------------//
//--------------FOR TAB BAR BUTTON COLOR---------------//
[[UITabBar appearance] setTintColor:[UIColor greenColor]];
//-------------FOR TAB BAR BACKGROUND COLOR------------//
[[UITabBar appearance] setBarTintColor:[UIColor whiteColor]];
Спробувавши всі запропоновані рішення, я не зміг знайти дуже корисних.
Нарешті я спробував наступне:
[self.tabBar setTintColor:[UIColor orangeColor]];
що вийшло чудово.
Я надав лише одне зображення для кожного TabBarItem. Навіть не знадобився вибраний Зображення.
Я навіть використовував його всередині Child-ViewControllers для встановлення різних кольорів TintColors:
UIColor *theColorYouWish = ...;
if ([[self.parentViewController class] isSubclassOfClass:[UITabBarController class]]){
UITabBarController *tbc = (UITabBarController *) self.parentViewController;
[tbc.tabBar setTintColor:theColorYouWish];
}
Ви можете встановити колір і шрифт відтінку як setTitleTextattribute:
UIFont *font= (kUIScreenHeight>KipadHeight)?[UIFont boldSystemFontOfSize:32.0f]:[UIFont boldSystemFontOfSize:16.0f];
NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:font, NSFontAttributeName,
tintColorLight, NSForegroundColorAttributeName, nil];
[[UINavigationBar appearance] setTitleTextAttributes:attributes];