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 = ; range.location = ;
if (hex.length == ) {
range.location = ;
}
[[NSScanner scannerWithString:[hex substringWithRange:range]]scanHexInt:&red];
range.location += ;
[[NSScanner scannerWithString:[hex substringWithRange:range]]scanHexInt:&green];
range.location += ;
[[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:];
} else if ([hex hasPrefix:@"0x"]) {
hex = [hex substringFromIndex:];
}
// Invalid if not 3, 6, or 8 characters
NSUInteger length = [hex length];
if (length != && length != && length != ) {
return nil;
}
// Make the string 8 characters long for easier parsing
if (length == ) {
NSString *r = [hex substringWithRange:NSMakeRange(, )];
NSString *g = [hex substringWithRange:NSMakeRange(, )];
NSString *b = [hex substringWithRange:NSMakeRange(, )];
hex = [NSString stringWithFormat:@"%@%@%@%@%@%@ff", r, r, g, g, b, b];
} else if (length == ) {
hex = [hex stringByAppendingString:@"ff"];
}
CGFloat red = [[hex substringWithRange:NSMakeRange(, )] _hexValue] / 255.0f;
CGFloat green = [[hex substringWithRange:NSMakeRange(, )] _hexValue] / 255.0f;
CGFloat blue = [[hex substringWithRange:NSMakeRange(, )] _hexValue] / 255.0f;
CGFloat alpha = [[hex substringWithRange:NSMakeRange(, )] _hexValue] / 255.0f;
return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; }
iOS RGB颜色封装的更多相关文章
- IOS RGB颜色转换
- (UIColor *)getColor:(NSString *)hexColor { unsigned int red,green,blue; NSRange range; range.lengt ...
- iOS中RGB颜色转换
iOS中RGB常用的色值,同时可将对颜色的设置定义成宏,方便开发应用,如: // RGB颜色转换(16进制->10进制) #define UIColorFromRGB(rgbValue) [UI ...
- IOS 通用颜色快速生成代码
通常情况下我们是直接使用类似于#EE1289这样的代码来直接表示RGB颜色的.但是在IOS语言中,它的颜色表示方式比较另类,他是使用一个0-1的小数来表示颜色值的.这样的实现,或许能够表示更多的颜色值 ...
- RGB颜色中的参数是变量的时候,为什么要加上两个+号在左右?
<script> function draw(){ var c=document.getElementById("mycanvas"); var cxt=c.getCo ...
- RGB颜色二值化
原理:RGB颜色根据计算'灰度'的公式,可以转化为黑白2种颜色,实现二值化. 业务场景的应用:可以根据背景颜色,取一个黑色或白色的颜色,作为背景色上的文案字体颜色 具体代码: function get ...
- HTML中RGB颜色查询对照表
RGB颜色查询对照表 因为兼容性问题,色阶板功能只能在IE浏览器中运行 RGB颜色对照表 #FFFFFF #FFFFF0 #FFFFE0 #FFFF00 #FFFAFA ...
- RGB颜色查询对照表
RGB颜色查询对照表 RGB颜色对照表 #FFFFFF2015-02-05 #FFFFF0 #FFFFE0 #FFFF00 #FFFAFA #FFFAF0 #FFF ...
- [置顶] RGB颜色查询对照表
因为兼容性问题,色阶板功能只能在IE浏览器中运行 RGB颜色对照表 #FFFFFF #FFFFF0 #FFFFE0 #FFFF00 #FFFAFA #FFFAF0 #FFF ...
- iOS状态栏颜色
下面截图给出修改 iOS 状态栏颜色的 4 种方式 Target.png Info.plist.png Storyboard.png code.png 其中第四张图中的代码,直接写在你的任何一个 Vi ...
随机推荐
- Grand Central Dispatch(GCD)详解(转)
概述 GCD是苹果异步执行任务技术,将应用程序中的线程管理的代码在系统级中实现.开发者只需要定义想要执行的任务并追加到适当的Dispatch Queue中,GCD就能生成必要的线程并计划执行任务.由于 ...
- 如何发布Web项目到互联网
比如我们有个项目想要发布到互联网上,我们首先需要购买域名以及主机,主机的话,推荐云主机(本人推荐西部数码或者阿里云),性能好: 我们先在云主机上搭建环境,比如Mysql,Jdk,Tomcat: 然后我 ...
- QT-Demo-Colck-01
QT += widgets QT += core HEADERS += \ mainwindow.h SOURCES += \ mainwindow.cpp \ main.cpp #ifndef MA ...
- C#邮件发送(最坑爹的邮箱-QQ邮箱)---转发(SmallFlyElephant)
C#邮件发送(最坑爹的邮箱-QQ邮箱) 最近工作挺清闲的,有空的时候陪妹子出去玩玩,自己看看小说,看看电影,日子过的挺欢乐的,这个星期幡然悔悟,代码才是我的最爱,做点小东西,就写个邮件发送程序.说的邮 ...
- 部署在腾讯云的公益网站遭受了一次CC攻击
版权声明:本文由黄希彤 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/651089001483090830 来源:腾云阁 ...
- 深入理解7816(2)---关于ATR
智能卡(此处主要指接触式CPU卡)本身始终处于被动的状态,所以终端设备在和智能卡进行数据交互的时候,需要首先给智能卡发指令,智能卡才会对应地给出应答.而智能卡告诉终端的第一句话就是ATR,亦即“复位应 ...
- Teach Yourself Scheme in Fixnum Days 6 recursion递归
A procedure body can contain calls to other procedures, not least itself: (define factorial (lambda ...
- URAL 2038 Minimum Vertex Cover
2038. Minimum Vertex Cover Time limit: 1.0 secondMemory limit: 64 MB A vertex cover of a graph is a ...
- oracle数据库 ORA-12560: 协议适配器错误
ORA-12560: 协议适配器错误 造成ORA-12560: TNS: 协议适配器错误的问题的原因有三个: 1.监听服务没有起起来.windows平台个一如下操作:开始---程序---管理工具-- ...
- tomcat动态映射路径
写了一个工具类,将上传文件功能保存文件的目录移到webapps目录外面,通过动态生成xml映射文件到tomcat\conf\Catalina\localhost目录下从而实现目录映射.可以被http直 ...