2010-05-07 4 views
0

J'ai un problème avec mes barres d'onglets en bas de l'écran. Le concepteur a décidé qu'il devrait être une couleur (pas noir) lorsqu'il est inactif et une autre couleur lorsqu'il est actif. Je travaille sur la façon de remplacer la couleur principale de la barre d'onglets par UITabBarController et le sous-classement faire: -SDK iPhone - UITabBarConroller et conception personnalisée

- (void)viewDidLoad { 

[super viewDidLoad]; 
CGRect frame = CGRectMake(0.0, 0, self.view.bounds.size.width, self.view.bounds.size.height); 
UIView *v = [[UIView alloc] initWithFrame:frame]; 

//get percentage values from digitalcolour meter and enter as decimals 
v.backgroundColor = [UIColor colorWithRed:.0 green:.706 blue:.863 alpha:1]; 
[tabBar1 insertSubview:v atIndex:0]; 
[v release];  

}

Je ne peux pas voir comment faire la barre d'onglets actif soit une couleur distincte lorsque il est sélectionné. J'ai essayé de sous-classer UITabBarItem mais il ne semble pas y avoir de propriété pour que je modifie la couleur d'arrière-plan de l'onglet.

Ils veulent également que les icônes de la barre d'onglets ne soient pas bleues et grises et je n'arrive pas à comprendre comment faire. Dans le ViewController pour un élément de barre d'onglet J'ai mis cela en viewDidLoad: -

myTabBarItem *tabItem = [[myTabBarItem alloc] initWithTitle:@"listOOO" image:[UIImage imageNamed:@"starcopy.png"] tag:1]; 
tabItem.customHighlightedImage=[UIImage imageNamed:@"starcopy.png"]; 
self.tabBarItem=tabItem; 
[tabItem release]; 
tabItem=nil; 

et dans ma sous-classe de UITabBarItem je mets ceci: -

-(UIImage *) selectedImage{ 
    return self.customHighlightedImage; 
} 

Seulement je ne vois pas l'icône du tout.

Si je mets cela dans le viewDidLoad de ma sous-classe de UITabBarController: -

for (UITabBarItem *item in tabBar1.items){ 
    item.image = [UIImage imageNamed:@"starcopy.png"]; 
} 

Puis tous mes barres d'onglets ont l'icône mais ils sont bleus (et gris quand il est inactif) comment pourrais-je les obtenir pas devenir bleu mais rester leur couleur d'origine?

Si vous avez de la lumière sur ce problème s'il vous plaît aidez-moi comme j'ai été ma tête sur le mur pendant 2 jours maintenant et ça me fait tomber. Merci d'avance Cheryl

Répondre

0

Il semble impossible de ne pas utiliser d'appels d'API privés. La seule solution que je peux voir maintenant est de créer un TabBar personnalisé complet. C'est cependant beaucoup de travail juste pour obtenir une icône présentée dans une couleur différente.