IOS小技巧——如何将美工的16进制颜色转换成IOS中的RGB颜色
来源:互联网 发布:linux递归设置权限 编辑:程序博客网 时间:2024/04/26 20:44
// 在我们实际工作中,美工给我们的UI图在是表明256位设置的UIColor,而是给我们16进制的颜色代码,例如@”#ffffff”等那么,我们该如何将这些颜色代码转换成我们需要的颜色呢?
+ (UIColor *)colorWithHexString:(NSString *)hexString alpha:(CGFloat)alpha{ NSString *cString = [[hexString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString]; // 字符串必须为6位或8位的才能识别,所以叫你的美工别偷懒喔,要写全,如果颜色代码不对默认为黑色 if ([cString length] < 6) return [UIColor blackColor]; // 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 blackColor]; //将字符串转换成我们需要的RGB颜色 NSRange range; range.location = 0; range.length = 2; // 获取0~2位字符串 NSString *rString = [cString substringWithRange:range]; range.location = 2; // 获取2~4位字符串 NSString *gString = [cString substringWithRange:range]; range.location = 4; // 获取4~6位字符串 NSString *bString = [cString substringWithRange:range]; // 转换成RGB的值 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];}
但是我们也有更加简单的方法
#define UIColorFromRGB(rgbValue) [UIColor \colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
利用这个宏定义,也能达到我么的需求
0 0
- IOS小技巧——如何将美工的16进制颜色转换成IOS中的RGB颜色
- IOS 将16进制颜色转换成RGB
- iOS 16进制颜色转换成RGB
- [iOS 16进制颜色转换RGB](转)
- iOS-swift-16进制颜色转换成RGB的例子
- iOS 之如何将#000000颜色转化成RGB
- iOS 之如何将#737373颜色转化成RGB
- iOS rgb颜色值的转换
- 将16进制颜色转换成RGB值
- js将16进制颜色转换成RGB格式
- iOS颜色16进制值转换RGB
- ios RGB值颜色转换
- iOS RGB颜色跟16进制颜色转换 宏定义
- iOS 16进制颜色转化为rgb 颜色
- iOS 十六进制颜色码转换成RGB颜色值
- IOS中的RGB颜色值
- IOS中的RGB颜色值
- IOS 将RGB颜色值转换为UIColor
- MAC OS X下的玩转Chromium源码
- Rust中文翻译15
- Putty自动登陆 参数化设置:使用指定用户自动登录参数
- [C++]字节对齐与结构体大小
- JavaIO总结(二)
- IOS小技巧——如何将美工的16进制颜色转换成IOS中的RGB颜色
- Servlet生命周期
- JAVA基础-面向对象之继承与多态
- 平均脸
- javaweb(三):使用response实现定时刷新
- 关于object-c中的super与self
- Node.js真的无所不能?那些不适用的应用领域分析
- Android布局之SurfaceView与控件结合
- Leetcode233-Number of Digit One