86 votes

L'utilisation de [UIColor colorWithRed: green: blue: alpha:] ne fonctionne pas avec UITableView seperatorColor?

J'essaie de configurer une couleur de séparateur gris foncé. Pourquoi les suivants ne font-ils rien?

 self.tableView.seperatorStyle = UITableViewCellSeperatorStyleSingleLine;
self.tableView.seperatorColor = [UIColor colorWithRed: 127 green:127 blue:127 alpha:1];
 

retourne une table sans séparateurs du tout.

Dès que j'utilise [UIColor blackColor], les séparateurs me conviennent parfaitement. Quel est le problème?

211voto

Jonathan. Points 15440

Vous devez diviser par 255.0

Comme je n’utilise que très rarement des valeurs comprises entre 1,0 et 0,0, j’ai créé une catégorie très simple de UIColor qui crée elle-même la division en désordre: (extrait de http://github.com/Jon889/JPGeneral )

 //.h file
@interface UIColor (JPExtras)
+ (UIColor *)colorWithR:(CGFloat)red G:(CGFloat)green B:(CGFloat)blue A:(CGFloat)alpha;
@end

//.m file
@implementation UIColor (JPExtras)
+ (UIColor *)colorWithR:(CGFloat)red G:(CGFloat)green B:(CGFloat)blue A:(CGFloat)alpha {
    return [UIColor colorWithRed:(red/255.0) green:(green/255.0) blue:(blue/255.0) alpha:alpha];
}
@end
 

Donc, vous pouvez juste faire (Si vous importez la catégorie I liée à ci-dessus):

 [UIColor colorWithR:127 G:127: B:127 A:1];
 

59voto

lxt Points 22990

Parce que votre méthode UIColor nécessite un float de 0-1, et non de 0-255. Vous devez diviser toutes vos valeurs RVB par 255.0, comme suit:

 self.tableView.seperatorColor = [UIColor colorWithRed:127.0f/255.0f green:127.0f/255.0f blue:127.0f/255.0f alpha:1.0f];
 

13voto

mhmdshawqi Points 119

Vous pouvez utiliser UIColor.org pour obtenir le bon UIColor .

3voto

Stian Storrvik Points 1834

Vous devez diviser vos valeurs avec 255, car la plage est 0-1. Prenez 127/255 = 0.49f et tapez-le plutôt. C'est là, c'est juste blanc :)

edit: cause des commentaires, j’ai ajouté du code sur la façon de le résoudre:

 -(float)getRGBValue:(int) rgbValue{  
    return rgbValue/255.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