Ma question tourne autour de la distinction entre un UISegmentedController sur un UINavigationBar et un UIToolbar. Si je dépose un UISegmentedControl dans une barre de navigation comme suit:Couleur UISegmentedControl dans un UIToolbar
navigationBar.barStyle = UIBarStyleBlackTranslucent;
tout va bien. UISegmentedControl identifie l'option sélectionnée avec un noir légèrement plus foncé. Mais, si je dépose un UISegmentedControl sur un UIToolbar, il ne capte pas la couleur ou la translucidité de la barre d'outils. Si je règle manuellement la tintColor, le UISegmentedControl ne fait plus la distinction entre sélectionné et non sélectionné.
Certes, il faut envelopper le UISegmentedControl dans un UIBarButtonItem avant de tomber sur un UIToolbar. Je me demande si cela fait partie de la raison pour laquelle UISegmentedControl semble incorrect (bleu sur fond noir translucide).
toolbar.barStyle = UIBarStyleBlackTranslucent;
UIBarButtonItem *item = [[[UIBarButtonItem alloc] initWithCustomView:segmentedControl];
NSArray *toolbarItems = [[NSArray alloc] initWithObjects:item,nil];
toolbar.items = toolbarItems;
Attribuées, mon code n'est pas EXACTEMENT comme écrit depuis que je suis en utilisant la navigation intérieure et barre d'outils de commande, mais la logique générale est la même. Je ne suis pas sûr comment faire le UISegmentedControl sur l'UIToolbar avoir un style translucide noir - maintenir une distinction évidente entre les segments sélectionnés et non sélectionnés.
Cela aide: 'segmentedController.tintColor = [UIColor darkGrayColor];' mais cela crée une dépendance codée en dur que je préférerais ne pas introduire. Par exemple, le rendre un peu plus compliqué pour permettre à l'utilisateur de sélectionner des schémas de couleurs. –
L'avez-vous compris? – DenNukem
Jusqu'à ce qu'Apple implémente la logique de coloration UINavigation dans l'UIToolbar pour UISegmentedControl, j'ai été relégué pour utiliser la propriété tintColor. –