iOS RGB颜色封装

使用类别创建

.h文件

#import <UIKit/UIKit.h>

@interface UIColor (HexColor)

+ (UIColor *)colorWithHex:(NSString *)hex;

@end

.m文件

#import "UIColor+HexColor.h"

@implementation UIColor (HexColor)

+ (UIColor *)colorWithHex:(NSString *)hex {
    unsigned int red, green, blue;
    NSRange range;
    range.length = 2;
    
    range.location = 0;
    if (hex.length == 7) {
        range.location = 1;
    }
    [[NSScanner scannerWithString:[hex substringWithRange:range]]scanHexInt:&red];
    range.location += 2;
    [[NSScanner scannerWithString:[hex substringWithRange:range]]scanHexInt:&green];
    range.location += 2;
    [[NSScanner scannerWithString:[hex substringWithRange:range]]scanHexInt:&blue];
    
    return [UIColor colorWithRed:(float)(red / 255.0) green:(float)(green / 255.0) blue:(float)(blue / 255.0) alpha:1.0];
}

@end

 

还有一个类似的方法,代码如下:

+ (UIColor *)colorWithHex:(NSString *)hex {  
        // Remove `#` and `0x`  
        if ([hex hasPrefix:@"#"]) {  
             hex = [hex substringFromIndex:1];  
        } else if ([hex hasPrefix:@"0x"]) {  
            hex = [hex substringFromIndex:2];  
        }  
      
        // Invalid if not 3, 6, or 8 characters  
        NSUInteger length = [hex length];  
        if (length != 3 && length != 6 && length != 8) {  
            return nil;  
        }  
      
        // Make the string 8 characters long for easier parsing  
        if (length == 3) {  
            NSString *r = [hex substringWithRange:NSMakeRange(01)];  
            NSString *g = [hex substringWithRange:NSMakeRange(11)];  
            NSString *b = [hex substringWithRange:NSMakeRange(21)];  
            hex = [NSString stringWithFormat:@"%@%@%@%@%@%@ff",                   r, r, g, g, b, b];  
        } else if (length == 6) {  
            hex = [hex stringByAppendingString:@"ff"];  
        }  
  
    CGFloat red = [[hex substringWithRange:NSMakeRange(02)] _hexValue] / 255.0f;  
        CGFloat green = [[hex substringWithRange:NSMakeRange(22)] _hexValue] / 255.0f;  
        CGFloat blue = [[hex substringWithRange:NSMakeRange(42)] _hexValue] / 255.0f;  
        CGFloat alpha = [[hex substringWithRange:NSMakeRange(62)] _hexValue] / 255.0f;  
          
    return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];  
    
}  

 

转载于:https://www.cnblogs.com/DWdan/p/4818779.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值