2010-11-24 42 views
25

Quiero hacer una conversión de hexadecimal a RGB, pero el hexadecimal trata una cadena como #FFFFFF. ¿Cómo puedo hacer eso?cómo convertir hexadecimal a RGB

+4

qué idioma? – st0le

+0

¿Puedes especificar el idioma? –

+0

lo siento, lo he editado .. está en el objetivo C –

Respuesta

81

Acabo de expandir mi categoría de UIColor por usted.
usarlo como UIColor *green = [UIColor colorWithHexString:@"#00FF00"];

// 
// UIColor_Categories.h 
// 
// Created by Matthias Bauch on 24.11.10. 
// Copyright 2010 Matthias Bauch. All rights reserved. 
// 

#import <Foundation/Foundation.h> 


@interface UIColor(MBCategory) 

+ (UIColor *)colorWithHex:(UInt32)col; 
+ (UIColor *)colorWithHexString:(NSString *)str; 

@end 

// 
// UIColor_Categories.m 
// 
// Created by Matthias Bauch on 24.11.10. 
// Copyright 2010 Matthias Bauch. All rights reserved. 
// 

#import "UIColor_Categories.h" 

@implementation UIColor(MBCategory) 

// takes @"#123456" 
+ (UIColor *)colorWithHexString:(NSString *)str { 
    const char *cStr = [str cStringUsingEncoding:NSASCIIStringEncoding]; 
    long x = strtol(cStr+1, NULL, 16); 
    return [UIColor colorWithHex:x]; 
} 

// takes 0x123456 
+ (UIColor *)colorWithHex:(UInt32)col { 
    unsigned char r, g, b; 
    b = col & 0xFF; 
    g = (col >> 8) & 0xFF; 
    r = (col >> 16) & 0xFF; 
    return [UIColor colorWithRed:(float)r/255.0f green:(float)g/255.0f blue:(float)b/255.0f alpha:1]; 
} 

@end 
+0

Sé que esto es viejo ahora, pero creo que tienes que importar # UIKit/UIColor.h> a real ser capaz de hacer UIColor (MBCategory) de lo contrario se obtiene un error diciendo que no se puede encontrar @interface UIColor. Esto podría haber sido una actualización desde que se escribió, pero no funciona sin la importación. – Popeye

+0

Debería funcionar en un proyecto iOS estándar creado por Xcode. Todo el UIKit se importa en el encabezado precompilado (ProjectName-Prefix.pch). –

24
//In your header file 

#define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0] 

//usage 
UIColor *color = UIColorFromRGB(0x000000) 
//you can also use it inline 
[text.textField setTextColor:UIColorFromRGB(0xcccccc)]; 
+2

Creo que esto es algo genial :) –

3

Esto se puede ayudarle a

UIColor *organizationColor = [self colorWithHexString:@"#ababab" alpha:1]; 


- (UIColor *)colorWithHexString:(NSString *)str_HEX alpha:(CGFloat)alpha_range{ 
    int red = 0; 
    int green = 0; 
    int blue = 0; 
    sscanf([str_HEX UTF8String], "#%02X%02X%02X", &red, &green, &blue); 
    return [UIColor colorWithRed:red/255.0 green:green/255.0 blue:blue/255.0 alpha:alpha_range]; 
} 
Cuestiones relacionadas