iOS 分类之UIColor+Hex
2016-07-22 01:22
363 查看
UIColor+Hex.h
UIColor+Hex.m
// // UIColor+Hex.h // ColorDemo // // Created by 黄健 on 16/7/22. // Copyright © 2016年 黄健. All rights reserved. // #import <UIKit/UIKit.h> #define HexRandomColor [UIColor hj_randomColor] #define HexStringColor(string) [UIColor hj_colorWithHexString:string] #define HexRGBColor(R, G, B) [UIColor hj_colorWith8BitRed:R green:G blue:B] @interface UIColor (Hex) + (UIColor *)hj_randomColor; + (UIColor *)hj_colorWithHexString:(NSString *)color; + (UIColor *)hj_colorWithHexString:(NSString *)color alpha:(CGFloat)alpha; + (UIColor *)hj_colorWith8BitRed:(NSInteger)red green:(NSInteger)green blue:(NSInteger)blue; + (UIColor *)hj_colorWith8BitRed:(NSInteger)red green:(NSInteger)green blue:(NSInteger)blue alpha:(CGFloat)alpha; @end
UIColor+Hex.m
// // UIColor+Hex.m // ColorDemo // // Created by 黄健 on 16/7/22. // Copyright © 2016年 黄健. All rights reserved. // #import "UIColor+Hex.h" @implementation UIColor (Hex) + (UIColor *)hj_randomColor { CGFloat R = arc4random_uniform(256) / 255.0; CGFloat G = arc4random_uniform(256) / 255.0; CGFloat B = arc4random_uniform(256) / 255.0; return [[self class] colorWithRed:R green:G blue:B alpha:1]; } + (UIColor *)hj_colorWithHexString:(NSString *)color alpha:(CGFloat)alpha { NSString *cString = [[color stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString]; if ([cString length] < 6) { return [UIColor clearColor]; } if ([cString hasPrefix:@"0x"] || [cString hasPrefix:@"0X"]) { cString = [cString substringFromIndex:2]; } if ([cString hasPrefix:@"#"]) { cString = [cString substringFromIndex:1]; } if ([cString length] != 6) { return [UIColor clearColor]; } NSRange range; range.length = 2; range.location = 0; NSString *rString = [cString substringWithRange:range]; range.location = 2; NSString *gString = [cString substringWithRange:range]; range.location = 4; NSString *bString = [cString substringWithRange:range]; 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:alpha]; } + (UIColor *)hj_colorWithHexString:(NSString *)color { return [[self class] hj_colorWithHexString:color alpha:1.f]; } + (UIColor *)hj_colorWith8BitRed:(NSInteger)red green:(NSInteger)green blue:(NSInteger)blue alpha:(CGFloat)alpha { return [UIColor colorWithRed:(float)red/255 green:(float)green/255 blue:(float)blue/255 alpha:alpha]; } + (UIColor *)hj_colorWith8BitRed:(NSInteger)red green:(NSInteger)green blue:(NSInteger)blue { return [[self class] hj_colorWith8BitRed:red green:green blue:blue alpha:1.f]; } @end
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 讲解iOS开发中基本的定位功能实现
- iOS中定位当前位置坐标及转换为火星坐标的方法
- js判断客户端是iOS还是Android等移动终端的方法
- iOS应用开发中AFNetworking库的常用HTTP操作方法小结
- iOS应用中UISearchDisplayController搜索效果的用法
- iOS App开发中的UISegmentedControl分段组件用法总结
- IOS开发环境windows化攻略
- iOS应用中UITableView左滑自定义选项及批量删除的实现
- iOS中UIAlertView警告框组件的使用教程
- 浅析iOS应用开发中线程间的通信与线程安全问题
- iOS中的UIKeyboard键盘视图使用方法小结
- 检测iOS设备是否越狱的方法
- .net平台推送ios消息的实现方法