iOS开发:APP设置颜色时候直接使用十六进制、RGB色值设置颜色

来源:互联网 发布:windows 故障转移 编辑:程序博客网 时间:2024/06/11 01:46

在APP开发过程中,有些时候需要自定义颜色,而且UI给的颜色的色值要么是十六进制的,要么是RGB的,这样如果没有使用相关的转换方法是不能直接使用的,那么下面就简单说一下这两种方式转换的使用方式,掌握之后,方便开发使用。

一、直接使用十六进制的色值来设置颜色

首先在工具类UIColor+Util里面的操作如下:

1.UIColor+Util.h文件:

#import <UIKit/UIKit.h>

@interface UIColor (Util)
/**
* 用16进制获取颜色
*
* @param stringToConvert 要转成颜色的十六进制字符,以#开始
*
* @return UIColor本类
*/
+ (UIColor *)colorWithHexString:(NSString *)stringToConvert;

@end

2.UIColor+Util.m文件:

#import "UIColor+Util.h"
@implementation UIColor (Util)
+ (UIColor *)colorWithHexString:(NSString *)stringToConvert {
NSString *cString = [[stringToConvert stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];
if ([cString hasPrefix:@"#"]) {
cString = [cString substringFromIndex:1];
}
if ([cString length] != 6 && [cString length] != 8) {
return [UIColor clearColor];
}
unsigned int r = 255.0f, g = 255.0f, b = 255.0f, a = 255.0f;
[[NSScanner scannerWithString:[cString substringWithRange:NSMakeRange(0, 2)]] scanHexInt:&r];
[[NSScanner scannerWithString:[cString substringWithRange:NSMakeRange(2, 2)]] scanHexInt:&g];
[[NSScanner scannerWithString:[cString substringWithRange:NSMakeRange(4, 2)]] scanHexInt:&b];
if ([cString length] == 8) {
[[NSScanner scannerWithString:[cString substringWithRange:NSMakeRange(6, 2)]] scanHexInt:&a];
}
return [UIColor colorWithRed:((float) r / 255.0f)
green:((float) g / 255.0f)
blue:((float) b / 255.0f)
alpha:((float) a / 255.0f)];
}
@end

3.在需要使用的地方导入工具类的头文件:

#import "UIColor+Util.h" //建议把这个工具类的头文件写在.pch文件中,这样方便在整个项目中任何地方调用使用

4.在使用的具体地方调用工具类中写的那个类方法:

self.view.backgroundColor = [UIColor colorWithHexString:@"#30344d"]; //这里是设置背景View的背景色(也可以通过该方法设置Label、button所有控件的颜色)

附:最好是把自定义颜色那句代码也设置成宏,这样便于全局修改设置,方便开发。比如第4步可以修改为:

#define kBarBackGroundColor [UIColor colorWithHexString:@"#30344d"] //这个宏定义可以放在全局的.pch文件中

self.view.backgroundColor = kBarBackGroundColor; //这样在任何地方调用这个宏就可以了,也方便全局修改颜色

二、直接使用RGB的色值来设置颜色

根据RGB色值来设置颜色比较简单,直接用系统给的方法就行,但是为了方便开发使用,我用宏定义来介绍使用,具体如下:

建议以下两个宏定义都写在.pch文件里面,这样方便开发

#define RGBCOLOR(R,G,B) [UIColor colorWithRed:R/255.0 green:G/255.0 blue:B/255.0 alpha:1] //默认颜色透明度alpha值为1
#define RGBACOLOR(R,G,B,A) [UIColor colorWithRed:R/255.0 green:G/255.0 blue:B/255.0 alpha:A] //可以自己设置颜色透明度alpha值

写完上面两个宏定义之后,在具体调用的地方使用只需调用一下就行,具体如下所示:

1.默认alpha值为1的情况下:

self.view.backgroundColor = RGBCOLOR(245, 245, 245); 

2.可以自定义设置alpha值的情况下:

self.view.backgroundColor = RGBACOLOR(255, 255, 255, 0.15);

这两种情况介绍完了,感觉只要用以上方法设置之后,在调用的时候就很简单,只需一句代码即可,所以最好还是用宏定义设置比较方便,然后运用.pch文件来设置,这样方便全局的设置和修改。










原创粉丝点击