2014-01-16 2 views
0

Привет, я хочу показать в UITableviewcells цвет фона динамически с использованием цветовых кодов HTML. Мое требование - использование json-массива и получение цветовых кодов HTML. И используя цветовые коды, как конвертировать значение rgb. Все тело помогает мне. Это мой ответ json.Как я могу отображать цветовые коды HTML в UITableviewcells

[{"classified_id":83,color_code":"#990066} 

{"classified_id":82 "color_code":"#ff66cc”} 

{"classified_id":80 color_code":"#990066”} 

{"classified_id":78 "color_code":"#ff6633”} 

{“classified_id":77 "color_code":"#ff6633”} 
+0

Взгляните на этот вопрос. http://stackoverflow.com/questions/3805177/how-to-convert-hex-rgb-color-codes-to-uicolor –

ответ

0

попробовать это один

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

UIColorFromRGBWithAlpha(0xff6633,1) 

вы можете добавить метод в классе и преобразовать шестнадцатеричное окрашивать

-(UIColor *)getUIColorObjectFromHexString:(NSString *)hexStr alpha:(CGFloat)alpha{ 

    unsigned int hexint = [CommonMethods intFromHexString:hexStr]; 
    UIColor *color = 
    [UIColor colorWithRed:((CGFloat) ((hexint & 0xFF0000) >> 16))/255 
        green:((CGFloat) ((hexint & 0xFF00) >> 8))/255 
        blue:((CGFloat) (hexint & 0xFF))/255 
        alpha:alpha]; 

    return color; 
} 
-(unsigned int)intFromHexString:(NSString *)hexStr{ 

    unsigned int hexInt = 0; 
    NSScanner *scanner = [NSScanner scannerWithString:hexStr]; 
    [scanner setCharactersToBeSkipped:[NSCharacterSet characterSetWithCharactersInString:@"#"]]; 
    [scanner scanHexInt:&hexInt]; 
    return hexInt; 
} 
0

Вы можете сделать это с помощью convenient category to extend UIColor. В частности, вы должны использовать метод класса colorWithHexString: для инициализации UIColor с шестнадцатеричным значением.

0

Вы можете добавить UIColor Категории и добавить этот метод -

+ (UIColor*)colorWithHexString:(NSString*)hex 
{ 
    NSString *cString = [[hex stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString]; 

    // String should be 6 or 8 characters 
    if ([cString length] < 6) return [UIColor grayColor]; 

    // strip 0X if it appears 
    if ([cString hasPrefix:@"#"]) cString = [cString substringFromIndex:1]; 

    if ([cString length] != 6) return [UIColor grayColor]; 

    // Separate into r, g, b substrings 
    NSRange range; 
    range.location = 0; 
    range.length = 2; 
    NSString *rString = [cString substringWithRange:range]; 

    range.location = 2; 
    NSString *gString = [cString substringWithRange:range]; 

    range.location = 4; 
    NSString *bString = [cString substringWithRange:range]; 

    // Scan values 
    unsigned int r, g, b; 
    [[NSScanner scannerWithString:rString] scanHexInt:&r]; 
    [[NSScanner scannerWithString:gString] scanHexInt:&g]; 
    [[NSScanner scannerWithString:bString] scanHexInt:&b]; 

    return [UIColor colorWithRed:((float) r/255.0f) 
         green:((float) g/255.0f) 
         blue:((float) b/255.0f) 
         alpha:1.0f]; 
} 
1

Ваш вопрос должен быть на самом деле Как конвертировать Hex код цвета в UIColor правой?

создать этот макрос на вершине своего класса после imports

#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] 

Тогда вы можете получить цвет, как это:

- (UIColor *)colorFromHex:(NSString *)strcolor 
{ 
    NSScanner *scanner = [NSScanner scannerWithString:[strcolor stringByReplacingOccurrencesOfString:@"#" withString:@""]]; 
    unsigned hex; 
    BOOL success = [scanner scanHexInt:&hex]; 
    return UIColorFromRGB(hex); 
} 

Надежда его, что вы хотите.

[self.view setBackgroundColor:[self colorFromHex:@"#FF0000"]]; 
+0

Отредактировано, пожалуйста, проверьте –

Смежные вопросы