2011-06-22 2 views
0

J'avais ajouté une barre d'onglets dans mon application dynamique comme indiqué ci-dessous: -Changer la couleur de la barre d'onglet personnalisé dans iphone

if (isLogin == TRUE) { 

     rootController = [[SettingsViewController alloc] init]; 
     tabTitle = @"Settings";  
     navTitle = @"Settings"; 
     tabImage = [UIImage imageNamed:@"icon1.png"]; 

} 
else 
{ 

     root =TRUE; 
     rootController = [[RootViewController alloc] init]; 
     tabTitle = @"Home";  
     navTitle = @"Login"; 
     tabImage = [UIImage imageNamed:@"icon1.png"]; 
} 

break; 

case 1: 
    rootController = [[AboutUs alloc] init]; 
    tabTitle = @"AboutUs";  
    navTitle = @"AboutUs"; 
    tabImage = [UIImage imageNamed:@"icon2.png"];  
    break;   
case 2: 
    rootController = [[ContactUsViewController alloc] init]; 
    tabTitle = @"Contact Us";  
    navTitle = @"Contact Us"; 
    tabImage = [UIImage imageNamed:@"icon3.png"];  
    break;   
case 3: 
    rootController = [[MoreViewController alloc] init]; 
    tabTitle = @"More";  
    navTitle = @"More"; 
    tabImage = [UIImage imageNamed:@"icon4.png"];  
    break; 

rootController.view.hidden = FALSE; 
UINavigationController *subController = [[UINavigationController alloc] 
initWithRootViewController:rootController]; 
subController.navigationBar.tintColor = [UIColor colorWithRed:(110.0/255.0) green:(184.0/255.0) blue:(71.0/255.0) alpha:1.0]; 
subController.navigationBar.topItem.title = navTitle;    
subController.title = tabTitle; 
subController.navigationItem.hidesBackButton =YES; 
subController.tabBarItem.image = tabImage; 
NSLog(@"%@",subController); 

[controllers addObject:subController]; 
NSLog(@"%@",controllers); 
[subController release];  
[rootController release]; 

En conséquence, il montre l'onglet ci-dessous forme: -

enter image description here

Mais je veux cutomise la valeur par défaut de la barre de couleur détecté onglet (couleur bleu) dans l'orange et que vous voulez barre d'onglets pour ressembler à ceci: -

enter image description here

S'il vous plaît aidez-moi; Comment puis-je faire ceci?

+0

Vous devez accepter la réponse de Rahul Vyas – Legolas

Répondre

-1

Vous ne pouvez pas modifier la couleur par défaut de la barre d'onglets. C'est l'une des directives de l'interface utilisateur que nous devons suivre dans les applications iOS.

J'avais commenté sur cette question quand il n'était pas possible de changer la couleur par défaut pour la barre d'onglets. Maintenant, nous pouvons changer la couleur par défaut de la barre d'onglets.

+2

vue contrôleurs init (ou viewWillAppear) Il est possible de changer l'onglet couleur du bouton de la barre. vois ma réponse. –

+0

@Rahul merci de partager cette information. Mais encore il y a une chance, l'application pourrait être rejetée par apple? – Swapna

+0

vous pouvez voir de nombreuses applications dans l'App Store qui ont des couleurs personnalisées sur UITabBar. –

2

Vous pouvez modifier la couleur de la barre d'onglets et de nombreuses applications approuvées dans Apple. Vous pouvez sous-classer UITabBar et changer la couleur que vous voulez. Dans votre cas, vous devez sous-classer UITabBarItem. Voici un post stackoverflow ont un regard Custom colors in UITabBar

+0

merci pour la réponse.J'ai ajouté le ci-dessus (code de la mine) dans ma méthode appdelegate comme je veux que cette barre d'onglets pour travailler dans toute mon application et j'ai vérifié votre réponse mais il fonctionne.Pouvez-vous m'expliquer en détail comment pour le faire.Ou peut me montrer l'autre façon de le faire.S'il vous plaît m'aider –

+0

@shweta lire attentivement cet article http://blog.theanalogguy.be/2010/10/06/custom-colored-uitabbar-icons/ –

0

S'il n'a pas été autorisé à personnaliser la barre d'onglets, Apple romprait leurs propres directives avec leur propre application Game Center (dont le design a l'air très agréable BTW)

0

Dans AppDelegete.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
[[UITabBar appearance] setSelectedImageTintColor:[UIColor redColor]]; 
return YES; 
} 
0

Vous pouvez aussi changer l'image de l'icône de barre d'onglets au lieu de changer la couleur,

comme.

dans le contrôleur TabBar méthode déléguée

- (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 tabbaritem.

Ou vous pouvez utiliser directement dans votre méthode, comme

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