今天在项目开发中,需要给一个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];
原创内容,欢迎转载 😊