iOS开发之IOS随机生成不同色值方法
白羽 2018-07-16 来源 :网络 阅读 1632 评论 0

摘要:本文将带你了解iOS开发之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 ArrayListgetMyColors(int size) {
       ArrayListcolorList = 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开发之IOS随机生成不同色值方法




本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之IOS频道!


本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程