33 votes

Comment personnaliser / styliser un UIPopoverController

Je travaille sur une application iPad et j'utilise UIPopoverControllers. Je suis à la partie où l'application doit être marquée et stylée et je me demande comment changer la couleur / teinte de l'UIPopoverController? Le standard est bleu foncé mais il doit être d'une autre couleur.

Est-ce possible?

Salut, Thomas

13voto

Ashok Points 2514

iOS 7 introduit la propriété backgroundColor de UIPopoverController qui affecte / inclut la couleur d'arrière-plan de navigation ainsi que les flèches de popover.

 @property (nonatomic, copy) UIColor *backgroundColor NS_AVAILABLE_IOS(7_0);
 

Exemple d'utilisation:

     if ([self.popoverVC respondsToSelector:@selector(setBackgroundColor:)]) {   // Check to avoid app crash prior to iOS 7
        self.popoverVC.backgroundColor = [UIColor greenColor];   // [UIColor colorWithPatternImage:@"..."] doesn't reflect the color on simulator but on device it works!
    }
 

Remarque - À partir de maintenant (iOS 7.0.3), dans certains cas (comme définir la couleur à l'aide de colorWithPatternImage :), le simulateur (et même certains périphériques) n'honore pas la couleur.

8voto

pcperini Points 11448

Jeter mon chapeau ici;

J'ai mis à profit UIPopoverBackgroundView s dans iOS 5+ pour ajouter simple tintColor propriété sur UIPopoverController s.

PCPopoverController : https://github.com/pcperini/PCPopoverController

0voto

vangoz Points 135

J'essaie de le tromper en personnalisant le contrôleur de vue à l'intérieur du popover, puis en masquant la bordure du popover à l'aide du code suivant:

 UIView * border = [[insideViewController.view.superview.superview.superview subviews] objectAtIndex:0];  
border.hidden = YES;
 

L’application est en cours de développement et j’espère que d’autres personnes commenteront cette solution.

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