2010-10-27 6 views

Répondre

-4

Vous pouvez changer l'image, mais l'image sélectionnée a toujours la même superposition bleue appliquée à l'image. La seule façon de contourner ce problème pourrait être de sous-classer UITabBarItem.

10

C'est possible sans ajouter de sous-vue.

Dans la classe où vous définissez la barre d'onglet définissez la propriété du tabBarItem à - >>

UITabBarItem *tabBarItem1 = [[self.tabBar.tabBar items] objectAtIndex:0]; 
[tabBarItem1 setFinishedSelectedImage:[UIImage imageNamed:@"campaigns_hover.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"campaigns.png"]]; 

Sa propriété de tabBarItem et u peut changer la valeur par défaut image bleue à une image personnalisée. campaigns_hover.png est l'image personnalisée sélectionnée et campaigns.png est l'image personnalisée lorsqu'ils ne sont pas sélectionnés ...

Profitez secret .. :)

+1

finishedSelectedImage: est obsolète depuis iOS 7. Utilisez plutôt la propriété SelectedImage. – Daniel

1

Dans iOS 6 je changer l'image sélectionnée comme Tabbaritem -

Dans la méthode délégué du contrôleur Tabbar

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 

{ 
    if([tabBarController selectedIndex] == 0) 
    { 
     [viewController.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"selected.png"]withFinishedUnselectedImage:[UIImage imageNamed:@"unselect.png"]]; 
    }  
} 

grâce à ce que vous pouvez changer votre image.

Ou vous pouvez utiliser directement dans vos contrôleurs de vue init (ou viewWillAppear) méthode, comme

[viewController.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"selected.png"]withFinishedUnselectedImage:[UIImage imageNamed:@"unselect.png"]]; 
+0

Génial code, continuez comme ça – user40910

Questions connexes