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.

1voto

Geraint Points 31
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
    if ([navigationController isKindOfClass:[UIImagePickerController class]]) {
        if ([[UIDevice currentDevice] systemVersion].floatValue >= 8.0) {
            [viewController.navigationController.navigationBar setBarTintColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"navbar1"]]];
        } else {
            [viewController.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navbar2"] forBarMetrics:UIBarMetricsDefault];
        }
    viewController.navigationController.navigationBar.tintColor = [UIColor whiteColor];
    UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 40)];
    titleLabel.textColor = [UIColor whiteColor];
    titleLabel.textAlignment = NSTextAlignmentCenter;
    titleLabel.font = [UIFont boldSystemFontOfSize:18.0f];
    titleLabel.text = @"photos";
    [viewController.navigationItem setTitleView:titleLabel];
    viewController.edgesForExtendedLayout = UIRectEdgeNone;
    }
}

0voto

Bourne Points 4260

Vous pouvez réaliser les personnalisations souhaitées à l'aide de la nouvelle fonction UIAppearance à partir d'iOS 5. Ce site tutoriel vous montre essentiellement comment.

0voto

andreasgasser Points 76

Vous devez définir un bouton UIButtonTypeCustom pour votre BarButtonItem.

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
UIBarButtonItem *yourBarButton = [[UIBarButtonItem alloc] initWithCustomView:button];

Pour plus d'informations, consultez cet article : UIBarButtonItem avec couleur ?

0voto

superarts.org Points 685

Si vous ne voulez pas utiliser le même style pour toute l'application, utilisez l'apparence comme @Bourne l'a suggéré :

    let font = UIFont(name:"Montserrat-Bold", size:16)!
    let attributes: LTDictStrObj = [
        NSForegroundColorAttributeName: UIColor.whiteColor(),
        NSFontAttributeName: font,
    ]
    UIBarButtonItem.appearance().setTitleTextAttributes(attributes, forState: UIControlState.Normal)

Vous pouvez également changer la couleur de fond de la barre de navigation si vous utilisez la couleur blanche comme moi :

        picker.navigationBar.barTintColor = .redColor()

0voto

Emilio Points 990

Une doublure utilisant UIAppearance :

[[UINavigationBar appearanceWhenContainedInInstancesOfClasses:@[[UIImagePickerController class]]] setTintColor:[UIColor redColor]];

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