一、随机颜色
- (UIColor *)arndomColor
{
CGFloat red = arc4random_uniform(256)/ 255.0;
CGFloat green = arc4random_uniform(256)/ 255.0;
CGFloat blue = arc4random_uniform(256)/ 255.0;
UIColor *color = [UIColor colorWithRed:red green:green blue:blue alpha:1.0];
return color;
}
随机颜色的宏:
#define random(r, g, b, a) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:(a)/255.0]
#define randomColor random(arc4random_uniform(256), arc4random_uniform(256), arc4random_uniform(256), arc4random_uniform(256))
注:
arc4random_uniform( )这个函数不像arc4random( )产生的数那么大,arc4random_uniform(n)可以产生1-(n-1)之间的数
二、UIColor十六进制颜色转换的分类:
UIColor+CustomColor.h
#import@interface UIColor (CustomColor)
/** 从十六进制字符串获取颜色 */
+ (UIColor *) colorWithHexString: (NSString *)color alpha:(CGFloat)alpha;
@end
UIColor+CustomColor.m
#import "UIColor+CustomColor.h"
@implementation UIColor (CustomColor)
+ (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];
}
@end
使用:
self.view.backgroundColor = [UIColor colorWithHexString:@"#f8f8f8" alpha:1.0];