UIColor失效的可能原因

今天在项目开发中,需要给一个UILabel设定一个NSMutableAttributedString,用来显示多种颜色。

NSString * originInfo = [NSString stringWithFormat:@"库存:%@/%@",[data objectForKey:@"libaoResidue"],[data objectForKey:@"libaoTotal"]];
NSRange range = NSMakeRange(3,originInfo.length - 3);
UIColor * blue = [UIColor blueColor];
            
NSMutableAttributedString * info = [[NSMutableAttributedString alloc] initWithString:originInfo];
[info addAttribute:NSForegroundColorAttributeName
             value:blue 
             range:range];

这样的显示效果很正常,可是在后面修改颜色的时候,把blue的定义修改成这样

UIColor * blue = [UIColor colorWithRed:30/250 
                                 green:181/250 
                                  blue:247/250 
                                 alpha:1];

文字就一直都显示为黑色,没有半点作用。

后面仔细看了下,才明白,UIColor的colorWithRed:green:blue:方法,接受的参数是CGFloat,而30/250的结果不是CGFloat,因此正确的定义方式应该是这样:


UIColor * blue = [UIColor colorWithRed:30.0f/250.0f 
                                 green:181.0f/250.0f 
                                  blue:247.0f/250.0f 
                                 alpha:1];

2 评论

发表评论