2010-05-24 5 views
0

Est-il possible d'avoir les icônes dans un TabBar et/ou le "Plus de contrôleur de navigation" dans des couleurs autres que le gris et le noir? J'ai essayé de changer la couleur de l'icône que je mets pour le contrôleur de vue en utilisant la méthode de UITabBarItemTabBar/"More View Controller" - Possibilité d'avoir des icônes dans des couleurs autres que le noir?

- (id)initWithTitle:(NSString *)title image:(UIImage *)image tag:(NSInteger)tag 

.

Mon client pense que l'interface est trop sombre et que vous voulez est pour l'égayer avec quelques icônes colorées ...

Merci!

Répondre

1

:(Les ​​boutons Non sur une barre d'onglets ou la barre d'outils sont dessinés avec le canal alpha afin qu'ils n'ont pas la couleur même si le .png a.

Ainsi, vous pouvez créer une sous TabBar ou ToolBar et mettre en œuvre votre propre boutons dessin toute la barre.

+0

C'est à peu près ce que j'attendais. Merci! – Malakim

0

une autre idée est d'avoir un autre fichier XIB qui agit comme une barre d'outils ou barre d'onglets de toutes sortes. Vous pouvez faire exactement la même et l'animation même en vue comme une barre d'outils ou onglet serait. Vous pouvez ensuite transmettre des variables globales via le délégué de l'application ou via un singleton pour le partager avec l'autre vue active si nécessaire.Un bon exemple d'ajout d'une sous-vue dans la vue est le code exemple "Hidden Drawer" trouvé ici (il suffit de changer les dimensions de l'écran puisque cette version affiche la vue en haut, alors que vous la voulez en bas).

http://cocoawithlove.com/2009/05/intercepting-status-bar-touches-on.html

Si vous ne pouvez pas comprendre, laissez-moi savoir et j'ai le code de travail à la maison que je peux poster ici pour vous.

Rob

5

venir un peu tard pour cela, mais mon approche pour changer les icônes du contrôleur Plus était (et pas sûr si Apple l'approuver) effectuer les opérations suivantes:

id moreNavController = [tabs.moreNavigationController.viewControllers objectAtIndex:0]; 
if ([moreNavController respondsToSelector(@selector(view)]) { 
    UITableView *t = (UITableView*)[moreNavController view]; 
    [t setDataSource:self]; 
} 

Alors je viens mettre en œuvre les méthodes de UITableViewDatasourceProtocol

-(NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section{ 
    id o =[tabs.moreNavigationController.viewControllers objectAtIndex:0]; 
    return [o tableView:tableView numberOfRowsInSection:section]; //let the existing data source actually return the number of rows 
} 

et

-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath { 
/* configure cell as normal with what ever image in the imageView property*/ 
    cell.imageView.image = <someimageobj> 
} 
Questions connexes