十六进制直接转换成颜色的方法

封装UIColor的类目

在.h文件

#import <UIKit/UIKit.h>


@interface UIColor (HEX)


+ (UIColor *)parseColorFromRGB:(NSString *)rgb;

+ (UIColor *)parseColorFromRGBA:(NSString *)rgb Alpha:(float)alpha;



@end


在.m文件里面:

#import "UIColor+HEX.h"


#define RGB_N(v) (v) / 255.0f


@implementation UIColor (HEX)


+ (UIColor *)parseColorFromRGB:(NSString *)rgb{

    return [UIColor parseColorFromRGBA:rgb Alpha:1];

}


+ (UIColor *)parseColorFromRGBA:(NSString *)rgb Alpha:(float)alpha{

    const char *string = [rgb UTF8String];

    

    if (!strncmp(string, "#", 1)) {

        const char *hexString = string + 1;

        

        if (strlen(hexString) != 6) {

            return [UIColor blackColor];

        }

        

        else {

            char r[3], g[3], b[3];

            r[2] = g[2] = b[2] = '\0';

            

            strncpy(r, hexString, 2);

            strncpy(g, hexString + 2, 2);

            strncpy(b, hexString + 4, 2);

            

            return [UIColor colorWithRed:RGB_N(strtol(r, NULL, 16))

                                   green:RGB_N(strtol(g, NULL, 16))

                                    blue:RGB_N(strtol(b, NULL, 16))

                                   alpha:((alpha>1 || alpha<0) ? 1 : alpha)];

        }

    }

    return [UIColor blackColor];

}


@end


以后直接调用即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值