Personnaliser la UITabBar
Pour définir les images de chaque UITabBarItem, dans leur état sélectionné et déselectionné :
UITabBarItem *item0 = [self.tabBar.items objectAtIndex:0]; UITabBarItem *item1 = [self.tabBar.items objectAtIndex:1]; ... item0.title = @"Disciplinas"; item1.title = @"Notas"; ... [item0 setFinishedSelectedImage:[UIImage imageNamed:@"disciplinas-active"] withFinishedUnselectedImage:[UIImage imageNamed:@"disciplinas-inactive"]]; [item1 setFinishedSelectedImage:[UIImage imageNamed:@"notas-active"] withFinishedUnselectedImage:[UIImage imageNamed:@"notas-inactive"]]; ...
Pour changer l’apparence du texte apparaissant sous l’icône, par exemple sa police et sa couleur, on peut utiliser UIAppearance. Attention, cela affectera toutes les UITabBar de l’application :
[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: [UIColor colorWithRed:247./255. green:228./255. blue:211./255. alpha:1.], UITextAttributeTextColor, [UIFont fontWithName:@"MyFontName" size:11.0], UITextAttributeFont, nil] forState:UIControlStateNormal]; [[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: [UIColor colorWithRed:67./255. green:33./255. blue:5./255. alpha:1.], UITextAttributeTextColor, [UIFont fontWithName:@"MyFontName" size:11.0], UITextAttributeFont, nil] forState:UIControlStateSelected];
Voilà le résultat obtenu :
Attention, pour l’état sélectionné il faut bien utiliser UIControlStateSelected. Si vous utilisez UIControlStateHighlighted, l’erreur suivante apparaitra dans la console :
button text attributes only respected for UIControlStateNormal, UIControlStateHighlighted and UIControlStateDisabled. state = 1 is interpreted as UIControlStateHighlighted.
On note qu’un effet de brillance est toujours présent sur le UITabBarItem sélectionné.
Afin de personnaliser cet « indicateur de sélection », on peut utiliser la méthode
[[UITabBar appearance] setSelectionIndicatorImage:indicatorImage]; // En revanche si l'on souhaite se passer de cet indicateur, il n'est pas // possible d'utiliser nil avec la précédente méthode [[UITabBar appearance] setSelectionIndicatorImage:nil]; // ne fonctionne pas ! // En revanche, on peut utiliser une image transparente, cela fonctionne ! [[UITabBar appearance] setSelectionIndicatorImage:[UIImage imageNamed:@"transparent.png"]];
Ci-dessous le résultat sans l’effet de surbrillance sur le UITabBarItem sélectionné :
Aucun commentaire pour l'instant