1、大家是否遇到过设置一串字符串中,某个或某几个字符的大小或颜色?
代码如下:
NSString *string1 =@"0.00";
NSString *string2 =@"0.36";
NSString *text = [NSString stringWithFormat:@"%@/%@元",string1,string2];//text=0.00/0.36
NSArray *numberArr = [text componentsSeparatedByString:@"/"];
NSString *moleNumber = numberArr[0];//代表“/”前面的部分
NSString *denoNumber = numberArr[1];//代表“/”后面的部分
NSString *moleNumberInt = [moleNumber componentsSeparatedByString:@"."][0];
NSString *moleNumberDec = [moleNumber componentsSeparatedByString:@"."][1];
NSMutableAttributedString *mAttString = [[NSMutableAttributedString alloc] initWithString:text];
//设置"/"分子数字颜色 /*COLOR_6是自定义的颜色,自己设置个颜色*/
[mAttString addAttribute:NSForegroundColorAttributeName value:COLOR_6 range:NSMakeRange(0,moleNumber.length)];
//设置分子小数点前面数字大小
[mAttString addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:15] range:NSMakeRange(0,moleNumberInt.length)];
//设置分子小数点后面数字大小
[mAttString addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:11] range:NSMakeRange(moleNumberInt.length+1,moleNumberDec.length)];
//设置分母数字的颜色和大小(包括"/")
[mAttString addAttribute:NSForegroundColorAttributeName value:[UIColor lightGrayColor] range:NSMakeRange(moleNumber.length,denoNumber.length+1)];
[mAttString addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:13] range:NSMakeRange(moleNumber.length,denoNumber.length+1)];
//typeNumberLabel是我定义的一个全局的UILabel
typeNumberLabel.attributedText = mAttString;
效果图如下:
2、设置下标
NSMutableAttributedString *s = [[NSMutableAttributedString alloc] initWithString:@“我是好人,你是吗?"];
//设置上、下标,上标高度为10(如果是下标的话设置成负数)
[s addAttribute:NSBaselineOffsetAttributeName value:[NSNumber numberWithInt:-10] range:NSMakeRange(5, 4)];
//设置样式
[s addAttribute:NSFontAttributeName value:[UIFontfontWithName:@"Helvetica"size:10] range:NSMakeRange(5, 4)];
//所放的位置
UILabel*label = [[UILabel alloc] initWithFrame:CGRectMake(50,120,200,200)];
//这个是添加到文本框内 不能用.text了
label.attributedText= s;
[self.viewaddSubview:label];
效果图如下: