一、隨機(jī)顏色
- (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;
}
隨機(jī)顏色的宏:
#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( )這個(gè)函數(shù)不像arc4random( )產(chǎn)生的數(shù)那么大,arc4random_uniform(n)可以產(chǎn)生1-(n-1)之間的數(shù)
二、UIColor十六進(jìn)制顏色轉(zhuǎn)換的分類:
UIColor+CustomColor.h
#import@interface UIColor (CustomColor)
/** 從十六進(jìn)制字符串獲取顏色 */
+ (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開(kāi)頭的,那么截取字符串,字符串從索引為2的位置開(kāi)始,一直到末尾
if ([cString hasPrefix:@"0X"])
cString = [cString substringFromIndex:2];
//如果是#開(kāi)頭的,那么截取字符串,字符串從索引為1的位置開(kāi)始,一直到末尾
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];