it-swarm.com.ru

Изменить оттенок панели вкладок на iOS 7

Есть ли способ изменить оттенок панели вкладок в iOS 7 с белого по умолчанию с синими значками на другой цветовой оттенок с кнопками другого цвета?

75
Jake Chasan

Попробуйте ниже:

[[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, и да, я знаю, что это уродливо, и надеюсь, что будет будет более чистый способ сделать это.

Swift:

UITabBar.appearance().tintColor = UIColor.red

tabBarItem.image = UIImage(named: "unselected")?.withRenderingMode(.alwaysOriginal)
tabBarItem.selectedImage = UIImage(named: "selected")?.withRenderingMode(.alwaysOriginal)
206
null

Существует гораздо более простой способ сделать это.

Просто откройте инспектор файлов и выберите "глобальный оттенок".

Вы также можете установить цвет оттенка приложения в Интерфейсном Разработчике. Меню Global Tint в разделе Document Interface Builder инспектора файлов позволяет открыть окно "Цвета" или выбрать определенный цвет.

Также см:

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

22
herdi

iOS 7.1.1

Если кому-то нужно использовать глобальную настройку цвета оттенка:

[[UIView appearance] setTintColor:[UIColor whiteColor]];

В didFinishLaunchingWithOptions из AppDelegate.

Также приведенный ниже код изменит только оттенок панели вкладок в любом методе viewDidLoad:

[self.tabBarController.tabBar setTintColor:[UIColor redColor]];
16
Ömer Faruk Almalı

В приложении делегат сделал FinishLaunchingWithOptions:

window.tintColor = [UIColor purpleColor];

устанавливает глобальный оттенок для приложения.

9
Sofi Software LLC

Запишите это в свой класс 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];
5
Ruchi

Что в итоге сработало для меня:

[self.tabBar setTintColor:[UIColor redColor]];
[self.tabBar setBarTintColor:[UIColor yellowColor]];
2
Javier Calatrava Llavería

В " инспекторе атрибутов " вашего контроллера панели вкладок внутри Интерфейсный конструктор убедитесь, что в нижней панели установлена ​​непрозрачная вкладка:

Choose Opaque

Теперь перейдите к вашему файлу 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]];
1
user4203956

Перепробовав все предложенные решения, я не смог найти ничего очень полезного.

Я наконец попробовал следующее:

[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];
}
0
dfinki