16进制颜色(html颜色值)字符串转为UIColor

  • + (UIColor *) colorWithHexString: (NSString *) stringToConvert
  • {
  • NSString *cString = [[stringToConvert stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];
  • // String should be 6 or 8 characters
  • if ([cString length] < 6) return DEFAULT_VOID_COLOR;
  • // strip 0X if it appears
  • if ([cString hasPrefix:@"0X"]) cString = [cString substringFromIndex:2];
  • f ([cString hasPrefix:@"#"]) cString = [cString substringFromIndex:1];
  • if ([cString length] != 6) return DEFAULT_VOID_COLOR;
  • // 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];
  • }
  • http://www.cocoachina.com/bbs/read.php?tid=63229&page=e&#a

    posted @ 2011-06-27 19:47  周宏伟  阅读(698)  评论(0编辑  收藏  举报