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.
… 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.
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().separatorColor
Comme @Jordan noté dans le commentaire, vous pouvez également stocker le résultat pour éviter des coûts d'évaluation supplémentaires.
let defaultTableSeparatorColor = UITableView().separatorColor
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];
[UIColor colorWithRed:224/255.0 green:224/255.0 blue:224/255.0 alpha:1.0];
Swift 3
Il suffit de définir sur nil pour rétablir les valeurs par défaut.
tableView.separatorColor = nil
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.
R: 224 G: 224 B: 224
J'espère que ça aide!
Dans Swift 3.0.1, vous pouvez faire quelque chose comme ceci
yourView.backgroundColor = UITableView().separatorColor
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.
UITableView * tempTable = [[UITableView alloc] init];
[table setSeparatorColor:tempTable.separatorColor];
[table setSeparatorStyle:tempTable.separatorStyle];
table.backgroundView = tempTable.backgroundView;