IOS随机生成不同色值方法

IOS随机生成不同色值方法

标签(空格分隔): 常用封装


iOS 宏定义_16进制色值转化为RGB返回UIColor类型对象

// 十六进制颜色

#define COLOR_WITH_HEX(hexValue) [UIColor colorWithRed:((float)((hexValue & 0xFF0000) >> 16)) / 255.0 green:((float)((hexValue & 0xFF00) >> 8)) / 255.0 blue:((float)(hexValue & 0xFF)) / 255.0 alpha:1.0f]

// 调用
UIColor *redColor = COLOR_WITH_HEX(0xe4e5e5);

生成不同色值方法封装


/**
 *  生成不同颜色的方法
 *
 *  @param count 需要生成的颜色数
 *
 *  @return 所有生成的颜色
 */
- (NSMutableArray *)getAllColors:(int)count
{
    NSMutableArray *myColors = [NSMutableArray array];
    
    [myColors addObject:BXColor(192, 255, 140)];
    [myColors addObject:BXColor(255, 247, 140)];

    int startColor = 0xdddddd;
    int endColor = 0xff111111;
    int step = (startColor-endColor)/(count+3);
    int hexValue;
    for (int i = count-1; i>=0; i--) {
        hexValue = 0xff000000 | (int)(endColor+step*i);
        
        UIColor *resultColor = [UIColor colorWithRed:((float)((hexValue & 0xFF0000) >> 16)) / 255.0 green:((float)((hexValue & 0xFF00) >> 8)) / 255.0 blue:((float)(hexValue & 0xFF)) / 255.0 alpha:1.0f];

        [myColors addObject:resultColor];
    }
    return myColors;
}

十六进制的颜色值直接转为ios可用的UIColor

////////////////////////////  
@interface UIColor (extension)  
  
+ (UIColor*) colorWithHex:(NSInteger)hexValue alpha:(CGFloat)alphaValue;  
+ (UIColor*) colorWithHex:(NSInteger)hexValue;  
+ (NSString *) hexFromUIColor: (UIColor*) color;  
  
@end  
  
@implementation UIColor (extension)  
  
+ (UIColor*) colorWithHex:(NSInteger)hexValue alpha:(CGFloat)alphaValue  
{  
    return [UIColor colorWithRed:((float)((hexValue & 0xFF0000) >> 16))/255.0  
                           green:((float)((hexValue & 0xFF00) >> 8))/255.0  
                            blue:((float)(hexValue & 0xFF))/255.0 alpha:alphaValue];  
}  
  
+ (UIColor*) colorWithHex:(NSInteger)hexValue  
{  
    return [UIColor colorWithHex:hexValue alpha:1.0];  
}  
  
+ (NSString *) hexFromUIColor: (UIColor*) color {  
    if (CGColorGetNumberOfComponents(color.CGColor) < 4) {  
        const CGFloat *components = CGColorGetComponents(color.CGColor);  
        color = [UIColor colorWithRed:components[0]  
                                green:components[0]  
                                 blue:components[0]  
                                alpha:components[1]];  
    }  
      
    if (CGColorSpaceGetModel(CGColorGetColorSpace(color.CGColor)) != kCGColorSpaceModelRGB) {  
        return [NSString stringWithFormat:@"#FFFFFF"];  
    }  
      
    return [NSString stringWithFormat:@"#%x%x%x", (int)((CGColorGetComponents(color.CGColor))[0]*255.0),  
            (int)((CGColorGetComponents(color.CGColor))[1]*255.0),  
            (int)((CGColorGetComponents(color.CGColor))[2]*255.0)];  
}  
  
@end 

安卓版生成方法

 /**
     * 如果传过来的参数一样,那么生成的颜色色值一样。(源于随机生成颜色方法)
     * @param size
     * @return
     */
    public static ArrayList getMyColors(int size) {
        ArrayList colorList = new ArrayList<>(size);

        colorList.add(Color.rgb(192, 255, 140));
        colorList.add(Color.rgb(255, 247, 140));
        colorList.add(Color.rgb(255, 208, 140));
        colorList.add(Color.rgb(140, 234, 255));
        colorList.add(Color.rgb(255, 140, 157));
        colorList.add(Color.rgb(193, 37, 82));
        colorList.add(Color.rgb(255, 102, 0));
        colorList.add(Color.rgb(245, 199, 0));
        colorList.add(Color.rgb(106, 150, 31));
        colorList.add(Color.rgb(179, 100, 53));


        int startColor = 0xdddddd;
        int endColor = 0xff111111;
        int step = (startColor-endColor)/(size+3);
        int ranColor;
        for (int i=size-1;i>=0;i--){
            ranColor = 0xff000000 | (int)(endColor+(step)*i);
            colorList.add(ranColor);
        }

        LogUtil.d(TAG,colorList+"");
        return  colorList;

    }

IOS开发中常用的RGB色值

IOS随机生成不同色值方法_第1张图片

你可能感兴趣的:(IOS随机生成不同色值方法)