我的环境,
iOS6
Xcode 4.5.1
我想在选择UITabBarItem的标题时更改它的颜色。
我对UITabBarItem使用CustomUITabBarItem。 - 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;
}
如何更改颜色?
答案 0 :(得分:2)
[self.tabBarItem setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
[UIFont fontWithName:@"AmericanTypewriter" size:20.0f], UITextAttributeFont,
[UIColor blackColor], UITextAttributeTextColor,
[UIColor grayColor],
nil]];
请确保这仅适用于iOS 5.0或更高版本。
答案 1 :(得分:0)
//it easy to change color
-(void)your_method
{
// your actions
[tabItem setBackgroundColor:[UIColor redColor]];
}
答案 2 :(得分:0)
#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];
}];
}
}