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文件来设置,这样方便全局的设置和修改。
- iOS开发:APP设置颜色时候直接使用十六进制、RGB色值设置颜色
- iOS开发技巧-使用storyboard和代码设置RGB颜色
- 芒果iOS开发之通过RGB值设置背景颜色
- iOS开发技巧之扩展UIColor,支持十六进制颜色设置
- iOS直接使用十六进制颜色转换方法
- iOS 十六进制颜色码转换成RGB颜色值
- iOS 十六进制颜色转RGB颜色
- RGB颜色设置错误
- 护眼颜色RGB设置
- rgb颜色设置方法及常用颜色的RGB值
- iOS 开发使用16进制色值设置颜色
- iOS开发中十六进制颜色与RGB的相互转化
- RGB颜色值与十六进制颜色码
- 使用RGB值填充窗口背景 设置字体颜色
- IOS开发里面使用RGB颜色
- IOS开发里面使用RGB颜色
- iOS开发中 使用RGB颜色
- iOS 开发中使用rgb颜色
- hive使用技巧(三)——巧用group by实现去重统计
- 详解大端模式和小端模式
- 《移动应用UI设计模式》学习
- warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
- StringUtils类API及使用方法详解
- iOS开发:APP设置颜色时候直接使用十六进制、RGB色值设置颜色
- android全局捕获异常,让app优雅的崩溃
- 十进制转换各个进制(< 10)
- VC++动态链接库(DLL)编程深入浅出
- 计算一个字节中有多少位被置1
- http://www.cnblogs.com/vigiles/p/3643489.html
- MongoDB入门(02)
- 欢迎使用CSDN-markdown编辑器
- lintcode --跳跃游戏II