47 votes

Quelle est l'UIColor du séparateur UITableView par défaut ?

Quelqu'un peut-il me dire le nom de l'UIColor ou le RGBA exact pour le séparateur UITableView par défaut de l'iPhone ?

Ça ressemble à une couleur gris clair, mais ça ne l'est pas. [UIColor lightGrayColor] ; c'est plus léger que ça.

67voto

Eonil Points 19404

La couleur n'est pas garantie comme étant une couleur spécifique. Elle peut être modifiée au fil des versions du système d'exploitation et du SDK. Vous pouvez récupérer la couleur exacte de manière dynamique en accédant à separatorColor propriété.

UITableView* TV = [[UITableView alloc] init];
UIColor* C = [TV separatorColor];
CGColorRef CGC = [C CGColor];

Maintenant vous pouvez obtenir les valeurs de chaque canal par UIColor Les méthodes de l'entreprise. Ou bien utilisez le CGColor directement pour le dessin.

Voici le commentaire du fichier d'en-tête de la propriété en UITableView.h .

@property(nonatomic,retain) UIColor *separatorColor;
// default is the standard separator gray

Si vous voulez éviter le coût d'instanciation de la fonction UITableView pour chaque fois, il suffit de l'obtenir une fois et de le mettre en cache.


Comme @Isuru noté en commentaire, vous pouvez écrire en Swift comme ceci.

UITableView().separatorColor

Comme @Jordan noté dans le commentaire, vous pouvez également stocker le résultat pour éviter un coût d'évaluation supplémentaire.

let defaultTableSeparatorColor = UITableView().separatorColor

41voto

Dude Points 305

En termes de CGContextSetRGBStrokeColor il devrait l'être :

CGContextSetRGBStrokeColor (
   CGContextRef c,
   224.0/255.0,
   224.0/255.0,
   224.0/255.0,
   CGFloat alpha
);

Assez simple et, espérons-le, une solution à votre problème.

2 votes

Pour être plus approximatif, dans iOS 9 c'est 217.0f/255.0f pour R, G & B.

26voto

alexey Points 2958

Il semble que cela ait changé pour iOS 7 :

Maintenant la couleur est RGB(200, 199, 204) :

[UIColor colorWithRed:200/255.0 green:199/255.0 blue:204/255.0 alpha:1.0];

Et n'oubliez pas que la hauteur de ligne correcte est de 1 px. Le code pour créer l'UIView correspondant :

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 640, 1/[[UIScreen mainScreen] scale])];
view.backgroundColor = [UIColor colorWithRed:200/255.0 green:199/255.0 blue:204/255.0 alpha:1.0];

19voto

Luke Stanyer Points 452

Swift 3

Il suffit de mettre la valeur nil pour revenir à la valeur par défaut.

tableView.separatorColor = nil

7 votes

La meilleure réponse ici !

18voto

ddiego Points 886
[UIColor colorWithRed:224/255.0 green:224/255.0 blue:224/255.0 alpha:1.0];

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