Как получить цвет фона ярлыка - iOS 4? - PullRequest
0 голосов
/ 26 января 2012

Я думал, что это будет просто, но ....

Как получить цвет фона UILabel (предпочтительно в RGB)?

Я не могу найти метод или простой способ конвертировать 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];

Ответы [ 2 ]

3 голосов
/ 26 января 2012
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];
1 голос
/ 26 января 2012

Как насчет категории?

#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];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...