颜色的类别 可以直接写 #333333 一句代码就能实现

来源:互联网 发布:建筑三维计算软件 编辑:程序博客网 时间:2024/06/10 15:10

/**

 *  颜色类别

 *  例如:#666777

 *  例如:#666777  透明度0.1

 */

#import <UIKit/UIKit.h>


@interface UIColor (Hex)

/*

输入6位数返回一个颜色值

*/

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

/*

 *  输入6位数返回一个颜色值

 */

+ (UIColor *)colorFromHex:(NSString *)hex alpha:(CGFloat)alpha;


@end

#import "UIColor+Hex.h"


@implementation UIColor (Hex)


+ (UIColor *)colorFromHex:(NSString *)hex

{

    return [UIColorcolorFromHex:hex alpha:1.0];

}


+ (UIColor *)colorFromHex:(NSString *)hex alpha:(CGFloat)alpha

{

    NSString *cleanString = [hexstringByReplacingOccurrencesOfString:@"#"withString:@""];

   if([cleanString length] ==3) {

        cleanString = [NSStringstringWithFormat:@"%@%@%@%@%@%@",

                       [cleanStringsubstringWithRange:NSMakeRange(0,1)],[cleanString substringWithRange:NSMakeRange(0,1)],

                       [cleanStringsubstringWithRange:NSMakeRange(1,1)],[cleanString substringWithRange:NSMakeRange(1,1)],

                       [cleanStringsubstringWithRange:NSMakeRange(2,1)],[cleanString substringWithRange:NSMakeRange(2,1)]];

    }

   if([cleanString length] ==6) {

        cleanString = [cleanStringstringByAppendingString:@"ff"];

    }

    

   unsigned int baseValue;

    [[NSScannerscannerWithString:cleanString] scanHexInt:&baseValue];

    

   float red = ((baseValue >> 24) & 0xFF)/255.0f;

   float green = ((baseValue >> 16) & 0xFF)/255.0f;

   float blue = ((baseValue >> 8) & 0xFF)/255.0f;

    

   return [UIColorcolorWithRed:red green:greenblue:blue alpha:alpha];

}


@end



0 0
原创粉丝点击