2012-02-18 12 views
6

インタフェースビルダーで、このスクリーンショットにRed 255、Green 159、Blue 0、Opacityを100%に変更したUILabelの色を変更しました。オレンジ色を呈する。iOS SDK Interface BuilderのRGBスライダーと異なる色のUIColor withRGB

IB RGB Sliders Color Produced in Center

私はプログラム的に

timeLabel.textColor = [UIColor colorWithRed:255.0 green:159.0 blue:0.0 alpha:1.0]; 

...背中、これを使用して、元の色に変更よりもUILabelの色を変更し、それがこの色を与えます.... UIColor color

私はそれが同じであるべきだと思った、誰かが私が間違っていることを知っている? 助けてください、ありがとう。

答えて

2
timeLabel.textColor = [UIColor colorWithRed:255/255.0f green:159.0/255.0f blue:0.0/255.0f alpha:1.0]; 
+0

おかげでたくさん私のために働きました。私ができる時、私はこの答えを受け入れるだろう。 – OscarTheGrouch

+1

フォーマットされていないコードサンプルではなく、ちょっとした説明を追加できます。 – jrturton

+0

UIColorは0から1までのプロパティをとります。 – OscarTheGrouch

7

編集:2年後、この投稿にはまだカルマとコメントがあります。私の古い答えをより良いものに修正しました。

UIColorの入力を0から255の間で取ることができる関数を追加する最も賢明で再利用可能な方法は、カスタムカテゴリを作成することです。読みやすく、デバッグしやすく、他の人が貢献しやすく、ビューのビューコントローラーだけでなく、プロジェクトがきれいになり、構造が維持されます。だから、次のファイルを追加し、あなたが

UIColor + Extra.h

@interface UIColor (Extra) 
+ (UIColor *)colorWithR:(uint)red G:(uint)green B:(uint)blue A:(uint) alpha 
+ (UIColor *) randomColor; 
+ (UIColor *) colorWithHex:(uint) hex; 
@end 

UIColor + Extra.m

#import "UIColor+Extra.h" 

@implementation UIColor (Extra) 

+ (UIColor *)colorWithR:(uint)red G:(uint)green B:(uint)blue A:(uint) alpha 
{ 
    return [UIColor colorWithRed:red/255.0f green:green/255.0f blue:blue/255.0f alpha:alpha/100.f]; 
} 

+ (UIColor *) randomColor 
{ 
    CGFloat red = (CGFloat)random()/(CGFloat)RAND_MAX; 
    CGFloat blue = (CGFloat)random()/(CGFloat)RAND_MAX; 
    CGFloat green = (CGFloat)random()/(CGFloat)RAND_MAX; 
    return [UIColor colorWithRed:red green:green blue:blue alpha:1.0]; 
} 
+ (UIColor *) colorWithHex:(uint) hex 
{ 
    int red, green, blue, alpha; 

    blue = hex & 0x000000FF; 
    green = ((hex & 0x0000FF00) >> 8); 
    red = ((hex & 0x00FF0000) >> 16); 
    alpha = ((hex & 0xFF000000) >> 24); 

    return [UIColor colorWithRed:red/255.0f green:green/255.0f blue:blue/255.0f alpha:alpha/255.f]; 
} 
@end 
+0

マクロをありがとうとそれらを配置する場所を助言:)。これらのマクロは、コードを読みやすくし、他のプログラムで作成されたRGBカラーを取得します。 –

+0

私は一般的にマクロの使用に注意したいです。クラス拡張やローカルメソッドはもっと安全です。 これには.pchを使用するのは面倒です。私はあなたに-1を与えるつもりです。 .pchは、コンパイラが一般的なヘッダの解析を最適化できるようにすることによって、コンパイルを高速化するデバイスです。 小規模なプロジェクトでは必要ないかもしれないマクロを伝播する方法としてそれを使用することは必要ではありません。(暴走) –

+0

有効なコメント@GordonDove、それはまったく暴言として見られませんでした。 '12年2月、私はおそらくこの答えをpchファイルにマクロとして追加したいと思いますが、今日、幸いなことに私はよく知っています。この答えはまだ私にSOカルマを与え続けているので、おそらくもっと良く洗練されたものを加えるべきです... –

0

は、 "デバイスRGB" に設定してみてください - これは

enter image description here

関連する問題