iOS开发中十六进制颜色与RGB的相互转化

在iOS开发中,我们常常会在界面色调搭配的时候选色比较麻烦,因为系统大多提供给我们的是一些基本颜色,还有就是取色器强行配色。但实际我们所需要的更多色调都有具体的十六进制表示,接下来我们就看看十六进制颜色与我们经常使用的RGB值之间的转换

1.由于文中经常用到,所以我直接在一个类中封装一个HEX转化方法,以便后面方便使用:

.h文件:

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@interface HexColor : NSObject

/*.h中进行申明方法*/

+ (UIColor *)colorWithHexString:(NSString *)color;

@end

.m文件:

#import "HexColor.h"
@implementation HexColor
#pragma mark -- 16进制Color转换

+ (UIColor *)colorWithHexString:(NSString *)color

{
    NSString *cString = [[colorstringByTrimmingCharactersInSet:[NSCharacterSetwhitespaceAndNewlineCharacterSet]]uppercaseString];

    if ([cStringlength] < 6) {
        return [UIColorclearColor];
    }

    if ([cStringhasPrefix:@"0X"])

        cString = [cString substringFromIndex:2];

    if ([cStringhasPrefix:@"#"])

        cString = [cString substringFromIndex:1];

    if ([cStringlength] != 6)

        return [UIColorclearColor];

    NSRange range;
    range.location =0;
    range.length =2;
    NSString *rString = [cStringsubstringWithRange:range];
    range.location =2;
    NSString *gString = [cStringsubstringWithRange:range];
    range.location =4;
    NSString *bString = [cStringsubstringWithRange:range];
    unsignedint r, g, b;

    [[NSScannerscannerWithString:rString] scanHexInt:&r];
    [[NSScannerscannerWithString:gString] scanHexInt:&g];
    [[NSScannerscannerWithString:bString] scanHexInt:&b];

    return [UIColorcolorWithRed:((float) r /255.0f) green:((float) g /255.0f) blue:((float) b /255.0f) alpha:1.0f];
}
@end

2.例如在某个颜色设置中调用:

 self.view.backgroundColor = [HexColorcolorWithHexString:@"a1f1f2"];

PS:这样就可以方便我们随意搭配了。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值