Set active image for UITabBar

I defined a UITabBarprogrammatically, but how can I set a custom icon UITabBarwhen an element is active?

Here is my code for declaring a button UITabBar, but how can I customize a custom image when it is active?

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];

    if (self) {
        self.title = NSLocalizedString(@"Free", @"Free");
        self.tabBarItem.image = [UIImage imageNamed:@"Free.png"];
    }

    return self;
}
+3
source share
2 answers

You need to set the normal and selected states for each element of the tab bar:

UIImage *normalImg = [UIImage imageNamed:@"Free.png"];
UIImage *selectedImg = [UIImage imageNamed:@"Free_Selected.png"];

[self.tabBarItem setBackgroundImage:normalImg forState:UIControlStateNormal]; //Normal
[self.tabBarItem setBackgroundImage:selectedImg forState:UIControlStateSelected]; //Selected
+3
source

New in iOS7, now you can do this using the property selectedImageon tabBarItem:

self.tabBarItem.selectedImage = [UIImage imageNamed:@"Free_Selected.png"];
+6
source

All Articles