Изменить tintColor невыбранного заголовка элемента UITabBarController и фонового изображения
Как изменить tintColor невыделенного заголовка UITabBarItem и фоновое изображение iOS 8?
Цвет по умолчанию для невыбранного состояния - светло-серый цвет, но он не отображается на моем темном оттенке. UITabBar background
Я хотел бы, чтобы мое невыбранное состояние имело цвет [UIColor blackColor]
Внутри моего приложения делегат didfinishlaunchingwithoptions: у меня есть
UIImage *deselectedE = [[UIImage imageNamed:@"mincraft_axe_green_32.png"] imageWithRenderingMode:UIImageRenderingModeAutomatic];
UIImage *selectedE = [[UIImage imageNamed:@"mincraft_axe_green_32.png"] imageWithRenderingMode:UIImageRenderingModeAutomatic];
e.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"Profile" image:deselectedE selectedImage:selectedE];
[[UITabBar appearance] setTintColor:[UIColor blackColor]];
Ответы
Ответ 1
Догадаться!
Используйте это, чтобы изменить цвет текста:
[[UITabBarItem appearance] setTitleTextAttributes:@{ NSForegroundColorAttributeName : [UIColor greenColor] }
forState:UIControlStateNormal];
[[UITabBarItem appearance] setTitleTextAttributes:@{ NSForegroundColorAttributeName : [UIColor blackColor] }
forState:UIControlStateSelected];
И убедитесь, что для режима рендеринга изображений для изображений установлено значение ORIGINAL
UIImage *deselectedImage = [[UIImage imageNamed:@"deselectedImage"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
UIImage *selectedImage = [[UIImage imageNamed:@"selectedImage"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
Ответ 2
В application didFinishLaunchingWithOptions:
AppDelegate.m внутри application didFinishLaunchingWithOptions:
используйте следующий код:
//unselected icon tint color
[[UIView appearanceWhenContainedIn:[UITabBar class], nil] setTintColor:[UIColor redColor]];
//selected tint color
[[UITabBar appearance] setTintColor:[UIColor greenColor]];
//text tint color
[[UITabBarItem appearance] setTitleTextAttributes:@{ NSForegroundColorAttributeName : [UIColor whiteColor] }
forState:UIControlStateNormal];
//background tint color
[[UITabBar appearance] setBarTintColor:[UIColor blueColor]];
Ответ 3
Вы также можете сделать изображение как оригинальное из инспектора атрибутов для файла актива без написания кода
Ответ 4
Вы также можете настроить его прямо в Storyboard... Проверьте мой ответ здесь: Как установить невыбранный оттенок UITabBarItem ***, включая системные элементы *** (iOS7)
Если вы используете Storyboard, вы также можете установить как Image
для Bar Item
панели, так и Selected Image
для Selected Bar Item
панели, чтобы получить неизмененное изображение в tabBar.
В качестве альтернативы в каталоге " Assets
вы можете выбрать " Render As
: Original Image
в атрибутах вашего изображения (" View
> " Utilities
> " Show Attributes Inspector
или ярлык" ⌥⌘4
(Option + Command + 4)).