通过#色值方式设置颜色
1 + (UIColor *)colorWithRGB:(NSString *)rgbstr{ 2 NSString *newrgbstr = [rgbstr uppercaseString]; 3 NSInteger strlen = newrgbstr.length; 4 UIColor *color = nil; 5 unichar first = [newrgbstr characterAtIndex:0]; 6 if (first == '#') { 7 for (int i = 1; i < strlen; i++) { 8 unichar u = [newrgbstr characterAtIndex:i]; 9 if (!(u >= '0' && u <= '9') && !(u >= 'A' && u <='F')) { 10 NSString *exName = [NSString stringWithFormat:@"使用%@类获取指定颜色错误", NSStringFromClass([self class])]; 11 NSException *e = [NSException exceptionWithName:exName reason:@"请检查颜色数值越界" userInfo:nil]; 12 @throw e; 13 } 14 } 15 if (newrgbstr.length == 4) { 16 unichar uarray[3]; 17 for(int i = 0;i < 3;i++){ 18 uarray[i] = [newrgbstr characterAtIndex:(i+1)]; 19 } 20 for (int i = 0;i < 3;i++) { 21 uarray[i] = (uarray[i] > '9' ? (uarray[i]-'A'+10) : (uarray[i]-'0')) * 17 % 256; 22 } 23 CGFloat r = uarray[0]/255.0f; 24 CGFloat g = uarray[1]/255.0f; 25 CGFloat b = uarray[2]/255.0f; 26 color = [UIColor colorWithRed:r green:g blue:b alpha:1]; 27 }else if(newrgbstr.length == 7){ 28 unichar uarray[6]; 29 for(int i = 0;i < 6;i++){ 30 uarray[i] = [newrgbstr characterAtIndex:(i+1)]; 31 } 32 for (int i = 0;i < 3;i++) { 33 unichar l = uarray[2*i]; 34 unichar r = uarray[2*i+1]; 35 uarray[i] = ((l > '9' ? (l-'A'+10) : (l-'0')) * 16 + 36 (r > '9' ? (r-'A'+10) : (r-'0'))) % 256; 37 } 38 CGFloat r = uarray[0]/255.0f; 39 CGFloat g = uarray[1]/255.0f; 40 CGFloat b = uarray[2]/255.0f; 41 color = [UIColor colorWithRed:r green:g blue:b alpha:1]; 42 } 43 } 44 return color; 45 }
可以通过#fff和#ffffff两种方式设置色值,和设计协调更方便
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 内存占用高分析
· .NET Core GC计划阶段(plan_phase)底层原理浅谈
· .NET开发智能桌面机器人:用.NET IoT库编写驱动控制两个屏幕
· 用纯.NET开发并制作一个智能桌面机器人:从.NET IoT入门开始
· 一个超经典 WinForm,WPF 卡死问题的终极反思
· 支付宝事故这事儿,凭什么又是程序员背锅?有没有可能是这样的...
· 在线客服系统 QPS 突破 240/秒,连接数突破 4000,日请求数接近1000万次,.NET 多
· C# 开发工具Visual Studio 介绍
· 在 Windows 10 上实现免密码 SSH 登录
· C#中如何使用异步编程