Reputation: 155
My env,
iOS6
Xcode 4.5.1
I want to change a color of UITabBarItem's title when it's selected.
I use CustomUITabBarItem for UITabBarItem. - customUITabBarItem.m
@implementation customUITabBarItem
@synthesize customHighlightedImage;
-(UIImage *) selectedImage
{
return self.customHighlightedImage;
}
- (void) dealloc
{
[customHighlightedImage release];
customHighlightedImage=nil;
[super dealloc];
}
@end
ViewController.m
#import "FirstViewController.h"
#import "customUITabBarItem.h"
@interface FirstViewController ()
@end
@implementation FirstViewController
- (void)viewDidLoad
{
[super viewDidLoad];
CustomUITabBarItem *tabItem = [[customUITabBarItem alloc] initWithTitle:@"first" image:[UIImage imageNamed:@"first.png"] tag:0];
tabItem.customHighlightedImage = [UIImage imageNamed:@"first_selected.png"];
self.tabBarItem = tabItem;
[tabItem release];
tabItem = nil;
}
How can I change the color?
Upvotes: 0
Views: 1234
Reputation: 6846
#define SYSTEM_OS [[[UIDevice currentDevice] systemVersion] intValue]
- (void) setTabBarColors {
if (SYSTEM_OS >= 5) {
self.tabBarController.tabBar.tintColor = [UIColor blueColor];
self.tabBarController.tabBar.selectedImageTintColor = [UIColor magentaColor];
__block NSDictionary *dict1 = [NSDictionary dictionaryWithObjectsAndKeys:
[UIFont fontWithName:@"ArialMT" size:12.0f], UITextAttributeFont,
[UIColor lightGrayColor], UITextAttributeTextColor,
nil];
__block NSDictionary *dict2 = [NSDictionary dictionaryWithObjectsAndKeys:
[UIFont fontWithName:@"ArialMT" size:12.0f], UITextAttributeFont,
[UIColor whiteColor], UITextAttributeTextColor,
nil];
[self.tabBarController.viewControllers enumerateObjectsUsingBlock:^(UIViewController * obj, NSUInteger idx, BOOL *stop) {
[obj.tabBarItem setTitleTextAttributes:dict1 forState:UIControlStateNormal];
[obj.tabBarItem setTitleTextAttributes:dict2 forState:UIControlStateSelected];
}];
}
}
Upvotes: 0
Reputation: 4750
[self.tabBarItem setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
[UIFont fontWithName:@"AmericanTypewriter" size:20.0f], UITextAttributeFont,
[UIColor blackColor], UITextAttributeTextColor,
[UIColor grayColor],
nil]];
And please ensure that this only works for iOS 5.0 or later.
Upvotes: 2
Reputation: 4901
//it easy to change color
-(void)your_method
{
// your actions
[tabItem setBackgroundColor:[UIColor redColor]];
}
Upvotes: 0