2012-01-26 32 views
0

これは簡単だと思いましたが、....ラベルの背景色を取得する方法 - iOS 4?

UILabelの背景色を取得するにはどうすればできますか?

UIColorをRGBに変換する方法や簡単な方法が見つからないようです。

ありがとうございました。

EDIT: 私はこのコードを使用して終了:

CGFloat r,g,b,a; 
const float* colors=CGColorGetComponents(myLabel.backgroundColor.CGColor); 
r=colors[0]; 
g=colors[1]; 
b=colors[2]; 
a=colors[3]; 

答えて

3
CGFloat r,g,b,a; 
UIColor *bgColor = myLabel.backgroundColor; 
[bgColor getRed:&r green:&g blue:&b alpha:&a]; 

または前のiOS 5:

const CGFloat *rgba = CGColorGetComponents([bgColor CGColor]); 
CGFloat r = rgba[0]; 
CGFloat g = rgba[1]; 
CGFloat b = rgba[2]; 
CGFloat a = rgba[3]; 
+0

おかげで、しかし "getRedを..." iOS版でのみ利用可能です5+ – wayneh

+0

OK、事前のiOS 5のコードで – UIAdam

+0

感謝を更新 - しかし、私はこの行でエラーが発生します: 'UIColor bgColor = colorLabel.backgroundColor;' 'インターフェイスタイプは静的に割り当てることができません"を指す "bgColor" ... – wayneh

1

どうカテゴリは?

次のようにあなたがそれを使用することができ
#import <UIKit/UIKit.h> 

@interface UIColor (RGBGetters) 
-(CGFloat)red; 
-(CGFloat)blue; 
-(CGFloat)green; 
@end 


#import "UIColor+RGBGetters.h" 

@implementation UIColor (RGBGetters) 
-(CGFloat)red 
{ 
    CGFloat r; 
    [self getRed:&r green:nil blue:nil alpha:nil]; 
    return r; 
} 

-(CGFloat)green 
{ 
    CGFloat g; 
    [self getRed:nil green:&g blue:nil alpha:nil]; 
    return g; 
} 

-(CGFloat)blue 
{ 
    CGFloat b; 
    [self getRed:nil green:nil blue:&b alpha:nil]; 
    return b; 
} 
@end 

CGFloat red=[someLabel.backgroundColor red]; 
+0

Ooopsも、iOS 4の部分を見逃していました:/しかし、Adam Wは素敵な解決策を投稿しました。 (それはカテゴリでも実現できます) – Julian

関連する問題