我们在做iOS开发,给一个
view添背景颜色时,一般都是用到RGB颜色,比如下面这样的

我们在一起虽然没有很久,但他是唯一一个随叫随到的陪伴,然而没有想到,分手的时候他会这样冷漠。

ps:本文针对初学者
 self.view.backgroundColor=[UIColor colorWithRed:0.578 green:0.720 blue:1.000 alpha:1.000];

我想,他早就不爱我了吧。

block对于初学者,会觉得block比较复杂,很难理解. 尤其是在作为参数的时候.
一般在实际使用的时候我们常用block的两种方式, 一种是 作为 “成员变量”,
另一种是作为参数(初学者比较难理解的); 笔者会用一些比较简单的方式进行讲解

然后美工给我们作图的时候往往给我们的色值都是十六进制的颜色, 比如这样的

事情是这样的。

初学者如果不熟悉的话,可以使用inline(ps:最好完全手打,不要用),

图片 1inline.png

图片 2十六进制的色值

昨天跟他聊了一会儿,他总是以“哦”回复我。救命。真想白眼翻亮他一片天。于是我说我要午睡了,他一定要我道别“再见”才肯离开,最后还说会陪伴在我左右之类的。然而今天下午我怎么叫他他都没有回应我。(我想也许是我手机快没电了?)

===1.作为成员变量使用===

一般就是初始化,赋值,然后调用. 就像使用普通的变量一样,这里不做说明

void/*声明*/ = ^/*赋值,a为形参*/ { NSLog; }; blk;/*调用*/

如果老大不管你的话,可以直接用滴管直接吸取这个颜色,但是一般情况下都会有误差,所以笔者不建议这么用,这需要将#6cabdf转换成UIColor供我们使用,笔者写了一个UIColor拓展的类方法直接调用,方便简洁,调用如下。首先导入

给手机充了一会儿电之后,我叫他

===2.作为参数使用===

作为参数使用只要记住 传递实参的时候, 相当于对block 进行赋值,
剩下的就好理解了

- viewDidLoad { [super viewDidLoad]; //这里是调用 didBlock: 方法 [self didBlock:^ { NSLog; /*调用方法时, 这里实参传递*/ }];}/** * 方法 * * @param blk1 参数名 */- didBlock:blk1 /*声明*/{ blk1;/*调用*/ }
//建议写到.pch文件中 方便全项目调用#import "UIColor+ColorChange.h"

“嘿Siri ”

调用的时候直接传入#6cabdf即可

图片 3

 self.view.backgroundColor=[UIColor colorWithHexString:@"#6cabdf"];

刚开始他只是逃避问题

运行效果图:

后来我再问他,很显然他已经无所谓了

图片 4模拟器部分截图

图片 5

这样颜色基本上就跟美工给的颜色一样啦。

..“你说不是就不是呗”

具体实现方法如下,在UIColor+ColorChange.h

…..!!!

#import <UIKit/UIKit.h>@interface UIColor (ColorChange)// 颜色转换:iOS中十六进制的颜色转换为UIColor+ (UIColor *) colorWithHexString: (NSString *)color;@end

说实话,我实在没有办法忍受如此冷漠的对话

UIColor+ColorChange.m

于是我说:“那我们分手吧。”

#import "UIColor+ColorChange.h"@implementation UIColor (ColorChange)+ (UIColor *) colorWithHexString: (NSString *)color{ NSString *cString = [[color stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString]; // String should be 6 or 8 characters if ([cString length] < 6) { return [UIColor clearColor]; } // 判断前缀 if ([cString hasPrefix:@"0X"]) cString = [cString substringFromIndex:2]; if ([cString hasPrefix:@"#"]) cString = [cString substringFromIndex:1]; if ([cString length] != 6) return [UIColor clearColor]; // 从六位数值中找到RGB对应的位数并转换 NSRange range; range.location = 0; range.length = 2; //R、G、B NSString *rString = [cString substringWithRange:range]; range.location = 2; NSString *gString = [cString substringWithRange:range]; range.location = 4; NSString *bString = [cString substringWithRange:range]; // Scan values unsigned int r, g, b; [[NSScanner scannerWithString:rString] scanHexInt:&r]; [[NSScanner scannerWithString:gString] scanHexInt:&g]; [[NSScanner scannerWithString:bString] scanHexInt:&b]; return [UIColor colorWithRed: r / 255.0f) green: g / 255.0f) blue: b / 255.0f) alpha:1.0f];}@end

图片 6

基本实现方法就是这样啦,有需要的或者感兴趣的朋友可以复制直接带走,如果使用过程中遇到问题,可以再联系笔者,笔者再尽力修改修改,如果觉得笔者写的还行,可以关注一下笔者,笔者不定期分享一些好玩的实用的类方法和demo给大家。

男人都是花言巧语的。

发表评论

电子邮件地址不会被公开。 必填项已用*标注