【问题标题】:how to set hex color code for button border in ios如何在ios中为按钮边框设置十六进制颜色代码
【发布时间】:2015-09-18 08:04:38
【问题描述】:

我想为按钮边框设置十六进制颜色代码。我该怎么做。帮我解决这个问题。thanx。我已经设置了这样的颜色。

self.buttonone.layer.borderColor = [UIColor greenColor].CGColor;

【问题讨论】:

  • @anuk 您必须接受一种已使用并为您提供帮助的解决方案,因此如果其他用户遇到与他/她相同的问题,他/她很容易找到解决方案。

标签: ios


【解决方案1】:

HEXRGB

// 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];
}

RGBHEX

- (NSString *)hexStringForColor:(UIColor *)color 
{
  const CGFloat *components = CGColorGetComponents(color.CGColor);
  CGFloat r = components[0];
  CGFloat g = components[1];
  CGFloat b = components[2];
  NSString *hexString=[NSString stringWithFormat:@"%02X%02X%02X", (int)(r * 255), (int)(g * 255), (int)(b * 255)];
  return hexString;
}

【讨论】:

    【解决方案2】:

    输入下面的代码,你的工作就会成功。

     self.buttonone.layer.borderColor = [[self colorFromGexString:@"AABBFF"]CGColor];
    

    只需把下面的方法和调用

    - (UIColor *)colorFromHexString:(NSString *)hexString
    {
        NSString *cString = [[hexString 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:@"0X"]) cString = [cString substringFromIndex:2];
    
        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];
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-26
      • 2011-09-06
      • 1970-01-01
      • 2017-09-26
      • 2011-09-20
      • 2011-10-25
      • 1970-01-01
      • 2022-01-04
      相关资源
      最近更新 更多