[UIColor colorWithRed:green:blue:alpha:]を使用しても、UITableView seperatorColorでは機能しませんか?


86

ダークグレーのセパレーターの色を設定しようとしています。なぜ以下は何もしないのですか?

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

セパレータがまったくないテーブルを返します。

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

回答:


211

あなたはで割る必要があります 255.0

1.0から0.0までの値を使用することはほとんどないため、非常に単純なUIColorカテゴリを作成し、それ自体で乱雑な外観の除算を行います(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];

5
業界の値は0-1標準ですか?写真編集アプリケーションを開くことができ、カラーピッカーは0〜255の値を提供しますが、なぜそれらが余分な作業を分割するのか知りたいのですが。
マフィンマン

1
@ Nick-それは良い質問です。UIColor「濃い色」(つまり、深さが24ビットを超える色、またはアルファを使用した32色)をサポートする必要があるためだと思います。もちろん、それでも、組み込みの便利なメソッド(16進サポートとともに)が多くの開発者にとって非常に役立つという事実は変わりません!
lxt 2013

また、16進値についても同じことが機能します。色を16進数で取得することもあるので、手動で計算しないために、次のように使用できます。たとえば、#C94557の場合:[UIColor colorWithRed:(CGFloat)0xC9 / 0xFF green:(CGFloat)0x45 / 0xFF blue: (CGFloat)0x57 / 0xFF alpha:1.0];
memical 2016年

UIColorには、0から255までの整数値を受け入れる2つの新しいメソッドがあります。以下の私の答えを参照してください。
ブリップ

59

UIColorメソッドには、0〜255ではなく0〜1のfloatが必要なためです。次のように、すべての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];

3

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

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

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

1

UIColor0から255までの整数値を受け入れる2つの新しいメソッドがあります。

UIColor(red: Int, green: Int, blue: Int)

そして

UIColor(alpha: Float, red: Int, green: Int, blue: Int)

それはドキュメントにはありませんが、私はそれを使用しました、そしてそれは魅力のように働きます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.