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
// 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
相关文章推荐
- iOS 图片简单处理方法
- iOS转场动画初探
- iOS翻页动画
- IOS 数组你知多少?
- Habber - IOS XMPP 客户端 教程 (二)应用XMPP&代理&全局变量
- iOS coreData
- iOS开发地图
- iOS-生成Bundle包-引入bundle-使用bundle
- iOS开发——ActionSheet的使用与弹出选择对话框
- iOS开发-对数组进行排序
- IOS开发中Windows键盘上Xcode中常用的快捷键
- iOS 保持界面流畅的技巧(最全最详尽的了)
- ios 日期和星期的获取
- IOS企业账号打包发布
- iOS获取键盘高度
- iOS 弹幕库LeoDanmakuKit的中文文档(1.0.1)
- ios开发常用关键字
- IOS版添加phonegap--音乐播放器插件教程
- 从此小白都用上了cocoapods管理第三方
- ios 懒加载