Изменить цвет оттенка панели вкладок на 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 в окне "Инспектор файлов" позволяет открыть окно "Цвета" или выбрать определенный цвет.

Также смотрите:

https://developer.apple.com/library/ios/documentation/userexperience/conceptual/TransitionGuide/AppearanceCustomization.html

Ответ 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];