您的位置:首页 > 移动开发 > IOS开发

IOS 颜色创建

2015-12-23 14:21 477 查看
//

// XMColor.h

// XMMyImage

//

// Created by mifit on 15/9/5.

// Copyright (c) 2015年 mifit. All rights reserved.

//

#import <UIKit/UIKit.h>

@interface UIColor(XMColor)

/**

依据16进制颜色值生成颜色 eg:eeeeee

@param color 颜色16机制的字符串,透明度为1.

@return 颜色

*/

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

/**

依据16进制和透明度生成颜色

@param color 颜色16机制的字符串

@param alpha 透明度

@return 颜色

*/

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

/**

依据整数RGB返回颜色

@param R 红0-255

@param G 绿0-255

@param B 蓝0-255

@param A 透明度0-1

@return UIColor 颜色

*/

+ (UIColor *)colorWithR:(NSInteger)r G:(NSInteger)g B:(NSInteger)b A:(CGFloat)a;

@end

//

// XMColor.m

// XMMyImage

//

// Created by mifit on 15/9/5.

// Copyright (c) 2015年 mifit. All rights reserved.

//

#import "XMColor.h"

@implementation UIColor(XMColor)

+ (UIColor *)colorWithHexString:(NSString *)color alpha:(CGFloat)alpha{


//删除字符串中的空格

NSString *cString = [[color
stringByTrimmingCharactersInSet:[NSCharacterSet
whitespaceAndNewlineCharacterSet]] uppercaseString];

// String should be 6 or 8 characters

if ([cString length] <
6) {

return [UIColor
clearColor];

}

// strip 0X if it appears


//如果是0x开头的,那么截取字符串,字符串从索引为2的位置开始,一直到末尾

if ([cString hasPrefix:@"0X"]) {

cString = [cString substringFromIndex:2];

}


//如果是#开头的,那么截取字符串,字符串从索引为1的位置开始,一直到末尾

if ([cString hasPrefix:@"#"]) {

cString = [cString substringFromIndex:1];

}

if ([cString length] !=
6) {

return [UIColor
clearColor];

}



// Separate into r, g, b substrings

NSRange range;

range.location =
0;

range.length =
2;

//r

NSString *rString = [cString
substringWithRange:range];

//g

range.location =
2;

NSString *gString = [cString
substringWithRange:range];

//b

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:((float)r /
255.0f) green:((float)g /
255.0f) blue:((float)b /
255.0f) alpha:alpha];

}

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

return [self
colorWithHexString:color alpha:1.0f];

}

+ (UIColor *)colorWithR:(NSInteger)r G:(NSInteger)g B:(NSInteger)b A:(CGFloat)a{

return [UIColor
colorWithRed:r / 255.0f
green:g / 255.0f
blue:b / 255.0f
alpha:a];

}

@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: