Есть ли способ изменить оттенок панели вкладок на iOS 7 с белого по умолчанию с синими значками на другой цвет с разными цветными кнопками?
Изменить цвет оттенка панели вкладок на iOS 7
Ответ 1
Попробуйте следующее:
[[UITabBar appearance] setTintColor:[UIColor redColor]];
[[UITabBar appearance] setBarTintColor:[UIColor yellowColor]];
Чтобы отточить кнопки неактивные, введите код ниже в вашем VC 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, и да, я знаю, что это уродливо и надеемся, что будет чистым способом сделать это.
Swift:
UITabBar.appearance().tintColor = UIColor.red
tabBarItem.image = UIImage(named: "unselected")?.withRenderingMode(.alwaysOriginal)
tabBarItem.selectedImage = UIImage(named: "selected")?.withRenderingMode(.alwaysOriginal)
Ответ 2
Существует гораздо более простой способ сделать это.
Просто откройте инспектор файлов и выберите "глобальный оттенок".
Вы также можете установить цвет оттенков приложений в Interface Builder. Меню Global Tint в разделе Document Builder в окне "Инспектор файлов" позволяет открыть окно "Цвета" или выбрать определенный цвет.
Также смотрите:
Ответ 3
iOS 7.1.1
Если кому-то понадобится использовать глобальный цвет оттенка:
[[UIView appearance] setTintColor:[UIColor whiteColor]];
В didFinishLaunchingWithOptions
of AppDelegate
.
Также под кодом будет изменяться только цвет оттенка табуляции в любом методе viewDidLoad
:
[self.tabBarController.tabBar setTintColor:[UIColor redColor]];
Ответ 4
В приложении делегат didFinishLaunchingWithOptions:
window.tintColor = [UIColor purpleColor];
устанавливает цвет оттенка по всему миру для приложения.
Ответ 5
Запишите это в класс View Controller панели вкладок:
// Generate a black tab bar
self.tabBarController.tabBar.barTintColor = [UIColor blackColor];
// Set the selected icons and text tint color
self.tabBarController.tabBar.tintColor = [UIColor orangeColor];
Ответ 6
Что, наконец, помогло мне:
[self.tabBar setTintColor:[UIColor redColor]];
[self.tabBar setBarTintColor:[UIColor yellowColor]];
Ответ 7
В "Инспекторе атрибутов" вашего контроллера панели вкладок в Interface Builder убедитесь, что на вашей нижней панели установлено значение "Панель непрозрачных вкладок":
Теперь перейдите в файл 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]];
Ответ 8
После тестирования всех предлагаемых решений я не смог найти ничего полезного.
Наконец я попробовал следующее:
[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];
}
Ответ 9
Вы можете установить цвет и шрифт оттенка как 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];