您现在的位置: 万盛学电脑网 >> 程序编程 >> 网络编程 >> ios >> 正文

IOS中十六进制的颜色转换为UIColor

作者:佚名    责任编辑:admin    更新时间:2022-06-22

   可用类别写一个 方便使用

  + (UIColor *) colorWithHexString: (NSString *)color

  {

  NSString *cString = [[colorstringByTrimmingCharactersInSet:[NSCharacterSetwhitespaceAndNewlineCharacterSet]] uppercaseString];

  // String should be 6 or 8 characters

  if ([cString length] <6) {

  return [UIColorclearColor];

  }

  // strip 0X if it appears

  if ([cString hasPrefix:@"0X"])

  cString = [cStringsubstringFromIndex:2];

  if ([cString hasPrefix:@"#"])

  cString = [cStringsubstringFromIndex:1];

  if ([cString length] !=6)

  return [UIColorclearColor];

  // Separate into r, g, b substrings

  NSRange range;

  range.location =0;

  range.length =2;

  //r

  NSString *rString = [cString substringWithRange:range];

  //g

  range.location =2;

  NSString *gString = [cString substringWithRange:range];

  //b

  range.location =4;

  NSString *bString = [cString substringWithRange:range];

  // Scan values

  unsigned int r, g, b;

  [[NSScannerscannerWithString:rString] scanHexInt:&r];

  [[NSScannerscannerWithString:gString] scanHexInt:&g];

  [[NSScannerscannerWithString:bString] scanHexInt:&b];

  return [UIColorcolorWithRed:((float) r /255.0f) green:((float) g /255.0f) blue:((float) b /255.0f) alpha:1.0f];

  }