title: UITabbarItem BadgeValue Text Color
body: <p>I have a problem in my App. I set a badge value at one of the tabs in the UITabBar. The Badge value is correctly red and the circle around the badge value is correctly in white. The problem is, that the color of the text is gray (160, 160, 160). It is the same color like the normal state tabbaritem text is, but I set this color nowhere in the app code and I do not know where this color come from.
  I searched for that issue in the whole net since weeks but I cannot find any solution. The only answer I found everywhere is, that it is not possible to change the color of the text of the badge value. But if it is not possible, why is it changed in my app?
  I hope, that somebody can help me with that issue...</p>
  
  <ul>
  <li><a href="http://www.luventas-webdesign.de/stackoverflow/screenshot_badgevalue.png" rel="nofollow noreferrer">http://www.luventas-webdesign.de/stackoverflow/screenshot_badgevalue.png</a> </li>
  <li>Like the color is in my app</li>
  <li><p><img src="https://i.stack.imgur.com/WOx04.png" alt="Like the color is in my app"></p></li>
  <li><p><a href="http://www.luventas-webdesign.de/stackoverflow/screenshot_like_it_should.png" rel="nofollow noreferrer">http://www.luventas-webdesign.de/stackoverflow/screenshot_like_it_should.png</a> </p></li>
  <li>Like the color should normally be...</li>
  <li><img src="https://i.stack.imgur.com/glQmc.png" alt="Like the color should normally be"></li>
  </ul>
  
  <hr>
  
  <p>Edit 02.11.2012 - Code</p>
  
  <p>Creation of TabBarController:</p>
  
  <pre><code>#import "ExtendedTabBarController.h"
  #import "configuration.h"
  
  @implementation ExtendedTabBarController
  
  - (void)viewDidLoad {
      [super viewDidLoad];
      [[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: [UIColor colorWithRed:207.0/255.0 green:70.0/255.0 blue:61.0/255.0 alpha:1], UITextAttributeTextColor, [UIFont fontWithName:@"KievitPro-Regular" size:10.0], UITextAttributeFont, nil] forState:UIControlStateSelected];
  
      [[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: [UIColor colorWithRed:255.0/255.0 green:255.0/255.0 blue:255.0/255.0 alpha:1], UITextAttributeTextColor, [UIFont fontWithName:@"KievitPro-Regular" size:10.0], UITextAttributeFont, nil] forState:UIControlStateNormal];
  
      [self.tabBar sizeToFit];
  
      UIView *tabbarBackgroundColorView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0, self.view.bounds.size.width, 49)];
      [tabbarBackgroundColorView setBackgroundColor:[UIColor colorWithRed:233.0/255.0 green:233.0/255.0 blue:233.0/255.0 alpha:1]];
      [self.tabBar insertSubview:tabbarBackgroundColorView atIndex:0];
  }
  
  - (void)viewDidUnload {
      [super viewDidUnload];
  }
  
  - (void)viewWillAppear:(BOOL)animated {
      [super viewWillAppear:animated];
  }
  
  
  - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
      return UIInterfaceOrientationIsPortrait(interfaceOrientation); // only portrait orientation
  
  }
  
  /**
   *  orientation for iOS6
   **/
  -(NSUInteger)supportedInterfaceOrientations{
      return UIInterfaceOrientationMaskPortrait;
  }
  
  @end
  </code></pre>
  
  <p>Call in AppDelegate:</p>
  
  <pre><code>ExtendedTabBarController *tabBarController = [[ExtendedTabBarController alloc] init];
  [self setTabBarController:tabBarController];
  [[UITabBar appearance] setBackgroundImage:[UIImage imageNamed:@"menu_bg"]];
  
  // code for initialize View- and NavigationControllers...
  
  self.tabBarController.viewControllers = @[highlightsNavigationController, categoryNavigationController, searchNavigationController, favoritesNavigationController, imprintNavigationController];
  
  self.window.rootViewController = self.tabBarController;
  
  [[UITabBar appearance] setSelectionIndicatorImage:[[UIImage alloc] init]];
  </code></pre>
  
  <p>Set the badge value:</p>
  
  <pre><code>int viewCount = 0;
  NSUserDefaults * defs = [NSUserDefaults standardUserDefaults];
  NSDictionary * dict = [defs dictionaryRepresentation];
  for (id key in dict) {
      if([key rangeOfString:@"_highlighted"].location != NSNotFound &amp;&amp; [[[dict objectForKey:key] objectAtIndex:0] isEqualToString:@"YES"]) {
          viewCount++;
      }
  }
  UITabBarItem *tbi = (UITabBarItem *)[self.tabBarController.tabBar.items objectAtIndex:3];
  if(viewCount &lt;= 0) {
      tbi.badgeValue = nil;
  } else {
      tbi.badgeValue = nil;
      tbi.badgeValue = [NSString stringWithFormat:@"%d", viewCount];
  }
  </code></pre>
  
  <p>Code for overwritten UILabel:</p>
  
  <pre><code>// -- file: UILabel+VerticalAlign.h
  #pragma mark VerticalAlign
  @interface UILabel (VerticalAlign)
  - (void)alignTop;
  - (void)alignBottom;
  - (void)awakeFromNib;
  -(id)initWithFrame:(CGRect)frame;
  @end
  
  
  #import "UILabel+VerticalAlign.h"
  
  // -- file: UILabel+VerticalAlign.m
  @implementation UILabel (VerticalAlign)
  - (void)alignTop {
      CGSize fontSize = [self.text sizeWithFont:self.font];
      double finalHeight = fontSize.height * self.numberOfLines;
      double finalWidth = self.frame.size.width;    //expected width of label
      CGSize theStringSize = [self.text sizeWithFont:self.font constrainedToSize:CGSizeMake(finalWidth, finalHeight) lineBreakMode:self.lineBreakMode];
      int newLinesToPad = (finalHeight  - theStringSize.height) / fontSize.height;
      for(int i=0; i&lt;newLinesToPad; i++)
          self.text = [self.text stringByAppendingString:@"\n "];
  }
  
  - (void)alignBottom {
      CGSize fontSize = [self.text sizeWithFont:self.font];
      double finalHeight = fontSize.height * self.numberOfLines;
      double finalWidth = self.frame.size.width;    //expected width of label
      CGSize theStringSize = [self.text sizeWithFont:self.font constrainedToSize:CGSizeMake(finalWidth, finalHeight) lineBreakMode:self.lineBreakMode];
      int newLinesToPad = (finalHeight  - theStringSize.height) / fontSize.height;
      for(int i=0; i&lt;newLinesToPad; i++)
          self.text = [NSString stringWithFormat:@" \n%@",self.text];
  }
  - (void)awakeFromNib
  {
      [super awakeFromNib];
      [self setFont:[UIFont fontWithName:@"KievitPro-Regular" size:12.0]];
  }
  
  -(id)initWithFrame:(CGRect)frame
  {
      id result = [super initWithFrame:frame];
      if (result) {
          [self setFont:[UIFont fontWithName:@"KievitPro-Regular" size:12.0]];
      }
      return result;
  }
  
  @end
  </code></pre>