UILabel的text设置不同颜色、字体

下载地址 GitHub源码 或 Demo下载

在项目开发中,经常会遇到同一行文本显示的字体颜色和大小不一样,看着可以使用两个label来进行布局,实则显得麻烦,因为设置固定字体大小,那么在不同屏幕大小的手机有可能文本之间显示有间隙,也有可能出现......,这样还是在同一个label中显示比较好。如下:

- (void)viewDidLoad {
    [super viewDidLoad];
    
    UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(80, 100, 200, 300)];
    label.textColor = [UIColor blackColor];
    label.numberOfLines = 0;
    label.font = [UIFont systemFontOfSize:12];
    [self.view addSubview:label];
    
    //不同字体颜色
    float unit = 2.123;
    NSString *strNumber = [NSString stringWithFormat:@"单价价值:1人次/¥%@",[NSString stringWithFormat:@"%.2f",unit]];
    NSMutableAttributedString *str_number = [[NSMutableAttributedString alloc] initWithString:strNumber];
    NSString *strLength = [NSString stringWithFormat:@"¥%.2f",unit];
    [self setDiffString:str_number withString:@"单价" loaction:0 textColor:[UIColor redColor] textSize:@"Arial-BoldItalicMT" size:30.0];
    [self setDiffString:str_number withString:strLength loaction:9 textColor:[UIColor greenColor] textSize:@"HelveticaNeue-Bold" size:10.0];
    label.attributedText = str_number;
}

#pragma mark - 同一label设置不同颜色、字体
- (void)setDiffString:(NSMutableAttributedString *)str_number withString:(NSString *)str_jq loaction:(NSInteger)loca textColor:(UIColor *)color textSize:(NSString *)fontName size:(CGFloat)size
{
    [str_number addAttribute:NSForegroundColorAttributeName value:color range:NSMakeRange(loca,[str_jq length])];
    [str_number addAttribute:NSFontAttributeName value:[UIFont fontWithName:fontName size:size] range:NSMakeRange(loca,[str_jq length])];
}

效果如下:


  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值