zoukankan      html  css  js  c++  java
  • convert a hexadecimal color (e.g. #FFCC88)

    The following is a simple method that will convert a hexadecimal color (e.g. #FFCC88) into an equivalent UIColor object.
    - (UIColor *) colorForHex:(NSString *)hexColor {
    hexColor = [[hexColor stringByTrimmingCharactersInSet:
    [NSCharacterSet whitespaceAndNewlineCharacterSet]
    ] uppercaseString];
    // String should be 6 or 7 characters if it includes '#'
    if ([hexColor length] < 6)
    return [UIColor blackColor];
    // strip # if it appears
    if ([hexColor hasPrefix:@"#"])
    hexColor = [cString substringFromIndex:1];
    // if the value isn't 6 characters at this point return
    // the color black
    if ([hexColor length] != 6)
    return [UIColor blackColor];
    // Separate into r, g, b substrings
    NSRange range;
    range.location = 0;
    range.length = 2;
    NSString *rString = [hexColor substringWithRange:range];
    range.location = 2;
    NSString *gString = [hexColor substringWithRange:range];
    range.location = 4;
    NSString *bString = [hexColor 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];
    }
    

    Notice that we had to first separate our the hex values for the red, green, and blue components first as substrings and then apply the NSScanner to those substrings.

  • 相关阅读:
    volatile双重检查锁定与延迟初始化
    Maven内置属性,pom属性
    spring-如何将spring源码成功导入Eclipse中
    Java8-函数复合用法
    JavaSE-序列化和反序列化
    JavaSE-java8-谓词复合的用法
    表单验证:nice Validator
    eclipse ide for java ee developers 开发环境搭建(J2EE) 【转载】
    表格
    MyBatis子查询
  • 原文地址:https://www.cnblogs.com/cnsoft/p/1409040.html
Copyright © 2011-2022 走看看