8 votes

Comment changer la couleur des boutons de la barre de navigation de UIImagePickerController ?

J'ai réussi à changer la couleur de la navigation bar mais la couleur des boutons est toujours noire. Existe-t-il un moyen de changer la couleur des boutons également ? Voir l'image ci-dessous.

UPDATE : Désolé, j'ai dû retirer l'image pour des raisons de droits d'auteur.

20voto

Jerry Thomsan Points 684

Ce n'est pas possible sans votre image personnalisée.

mais vous devez changer la couleur de la teinte dès que vous créez le contrôleur de navigation :

 UIImagePickerController *pickerImg = [[UIImagePickerController alloc] init];
pickerImg.navigationBar.barStyle = UIBarStyleBlackOpaque; // Or whatever style.
// or
pickerImg.navigationBar.tintColor = [UIColor whateverColor];

1voto

megha Points 473

Vous pouvez masquer la barre de navigation, et créer une barre de navigation personnalisée en utilisant imageview et en y plaçant 2 boutons. en faisant cela, vous pouvez changer l'image/couleur des boutons ainsi que l'image view selon vos besoins.

pour masquer la barre de navigation :

 self.navigationController.navigationBarHidden=YES;

alors dans XIB : créer une vue de 44 de hauteur ,y placer l'imageview et y placer 2 boutons et 1 étiquette.

J'espère que cela résoudra votre problème.

1voto

sigkill Points 668

@Ankit Vous pouvez essayer d'obtenir les sous-vues à partir de la barre de navigation et ensuite définir la couleur désirée. J'ai utilisé cette approche pour définir la couleur du bouton d'annulation dans la barre de recherche. La taille du bouton d'annulation est de 48*30 et vous pouvez utiliser le tableau des vues secondaires pour définir la couleur souhaitée. Je ne suis pas sûr mais cela peut faire l'affaire. Voici le code que j'ai utilisé pour définir la couleur du bouton d'annulation dans la barre de recherche.

NSArray *arrySearchSubviews=[searchBarFrnds subviews];
for (UIButton *btn in arrySearchSubviews) 
{
   CGRect rect=btn.frame;
    NSLog(@"width %f",rect.size.width);
    NSLog(@"height %f",rect.size.height);
    if (rect.size.width==48 ) 
    {
        [btn setTintColor:[UIColor colorWithRed:0 green:0.403f blue:0.4f alpha:1.0f]];
    }
}

1voto

Oscar Points 11

Si vous souhaitez affecter la couleur des boutons qui apparaissent dans toutes les vues telles que celle que vous souhaitez modifier, il vous suffit d'utiliser ce qui suit :

UIBarButtonItem *searchBarButton = [UIBarButtonItem appearanceWhenContainedIn:[UISearchBar class], nil];
[searchBarButton setTintColor:[UIColor colorWithRed:138.0/255.0 green:183.0/255.0 blue:64.0/255.0 alpha:1.0]];

1voto

Vlad Smelov Points 71

J'espère que cela vous aidera !

Étape 1 :

UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
[self presentViewController:picker animated:YES completion:NULL];

Étape 2 :

/* Status bar color */
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
/* Left button */
navigationController.navigationBar.tintColor = [UIColor blackColor];
/* Right button color  */
navigationController.navigationBar.topItem.rightBarButtonItem.tintColor = [UIColor blackColor];

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X