web-dev-qa-db-ja.com

[UIColor colorWithRed:green:blue:alpha:]を使用すると、UITableView seperatorColorで機能しませんか?

暗い灰色の色を設定しようとしています。なぜ次は何もしないのですか?

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

セパレーターのないテーブルを返します。

[UIColor blackColor]を使用するとすぐに、セパレーターが正常に取得されます。どうしたんだ?

86
skålfyfan

255.0で割る必要があります

1.0と0.0の間の値を使用することはほとんどないため、ごちゃごちゃした見た目の区分をそれ自体で行う非常に単純なUIColorカテゴリを作成しました:(from 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

だからあなたはちょうどすることができます(上記にリンクしたカテゴリをインポートする場合):

[UIColor colorWithR:127 G:127: B:127 A:1];
211
Jonathan.

UIColorメソッドには0〜255ではなく0〜1の浮動小数点数が必要なためです。次のように、すべてのRGB値を255.0で除算する必要があります。

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

範囲は0〜1であるため、値を255で除算する必要があります。 127/255 = 0.49fを代わりに入力します。そこにある、それはただの白だ:)

編集:コメントの原因、私はそれを解決する方法に関するいくつかのコードを追加しました:

-(float)getRGBValue:(int) rgbValue{  
    return rgbValue/255.0;
]
3
Stian Storrvik