web-dev-qa-db-fra.com

Quelle est la couleur UIC du séparateur UITableView par défaut?

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

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

37
Alejandra

… En termes de CGContextSetRGBStrokeColor il devrait être:

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

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

37
Dude

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

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

Vous pouvez maintenant obtenir les valeurs de chaque canal avec les méthodes de UIColor. Ou utilisez la CGColor directement pour dessiner.

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

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

Si vous voulez éviter le coût d'instanciation de UITableView à chaque fois, obtenez-le une fois et mettez-le en cache.


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

UITableView().separ‌​atorColor

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

let defaultTableSeparato‌​rColor = UITableView().separa‌​torColor
64
Eonil

Il semble que cela ait changé pour iOS 7 :

Maintenant, la couleur est RVB (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 appropriée est de 1 px. Le code pour créer 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];
25
alexey
[UIColor colorWithRed:224/255.0 green:224/255.0 blue:224/255.0 alpha:1.0];
18
ddiego

Swift 3

Il suffit de définir sur nil pour rétablir les valeurs par défaut.

tableView.separatorColor = nil
12
Luke Stanyer

Pour connaître les couleurs de votre appareil iOS, exécutez simplement l'application dans le simulateur, puis utilisez le compteur de couleurs numériques d'Apple (dans votre dossier Utilitaires) et survolez la couleur sur laquelle vous souhaitez des informations. Vous pouvez également effectuer une capture d'écran à partir du téléphone, l'ouvrir dans Aperçu et utiliser DigitalColor Meter pour lire les valeurs de couleur.

6
amergin

R: 224 G: 224 B: 224

J'espère que ça aide!

5
AndrewPK

Dans Swift 3.0.1, vous pouvez faire quelque chose comme ceci

yourView.backgroundColor = UITableView().separ‌​atorColor
3
Pankaj Gaikar

FWIW: 

UIColor *defaultSeparatorColor = [UIColor colorWithRed:0.783922f green:0.783922f blue:0.8f alpha:1.0f];

Cela s'est avéré simuler iOS 9.0 - et se déconnecter des valeurs en virgule flottante qu'un UITableView separatorColor a par défaut. Je ne trouve pas que cela corresponde à l'une des valeurs des autres réponses, mais au résultat exact du code de l'autre réponse, où le paramètre separatorColor est défini via la création d'un UITableView * tempTable.

2
humbolight
UITableView * tempTable = [[UITableView alloc] init];

[table setSeparatorColor:tempTable.separatorColor];
[table setSeparatorStyle:tempTable.separatorStyle];
table.backgroundView = tempTable.backgroundView;
0
Phagcartorn