iOS同一个label中设置不同的字体及颜色

1,767 阅读1分钟

在开发中,由于界面显示的需求,很多时候一个label中的字体大小和颜色需要不同,我们当然可以用两个label来拼凑,但是略显繁琐。其实iOS中给出了在同一个label中,设置字体大小及颜色的方法,下面给出居停代码实现。

    //需要设置字体的label
    UILabel *moneyLabel;
    moneyLabel.text = @"1880.99元/收入";

    //定义一个range来获取需label内需要修改的字符串范围
    NSRange range;
    //设置截取字符串的分隔符
    range = [todayMoneyLabel.text rangeOfString:@"."];
    if (range.location != NSNotFound)
    {
        //初始化range的值
        NSInteger startIndex = range.location;
        range = NSMakeRange(startIndex, 7);
        UIFont *labelFont = [UIFont systemFontOfSize:12.0];
        NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:@"1880.99元/收入"];
        //设置字体颜色
        [str addAttribute:NSForegroundColorAttributeName value:[UIColor lightGrayColor] range:range];
        //设置字体大小
        [str addAttribute:NSFontAttributeName value:labelFont range: range];
        todayMoneyLabel.attributedText = str;
    }
    else
    {
        NSLog(@"Not Found");
    }