是否可以使用NSAttributedString设置多个字体属性

pro*_*stm 9 string nsattributedstring ios

我试图减少我的字符串的一部分的大小,并使用下面的代码.我的输出不正确.我只看到我的第一个字体属性用于整个字符串,而不是指定的范围.

    NSMutableAttributedString *attString=[[NSMutableAttributedString alloc] initWithString:title];
    NSInteger _stringLength=[descriptionText length];
    [attString addAttribute:NSFontAttributeName
                      value:[UIFont fontWithName:@"Gotham-Bold" size:20.0]
                      range:NSMakeRange(0, 10)];
    [attString addAttribute:NSFontAttributeName
                      value:[UIFont fontWithName:@"Helvetica-Bold" size:12.0]
                      range:NSMakeRange(11, _stringLength-1)];
    [self.description setAttributedText:attString];
Run Code Online (Sandbox Code Playgroud)

Wil*_*son 6

我也遇到过这个问题.对于第二个字体选择,您需要将字符串长度的减号设置为与其开始的位置相同.

  [attString addAttribute:NSFontAttributeName
                    value:[UIFont fontWithName:@"Helvetica-Bold" size:12.0]
                    range:NSMakeRange(11, _stringLength-11)];
Run Code Online (Sandbox Code Playgroud)

而不是:

  [attString addAttribute:NSFontAttributeName
                    value:[UIFont fontWithName:@"Helvetica-Bold" size:12.0]
                    range:NSMakeRange(11, _stringLength-1)];
Run Code Online (Sandbox Code Playgroud)


Coc*_*ics 0

你的代码没有任何问题。可能您正在尝试使用不存在的字体名称。您是否检查过字体是否确实存在,例如通过 po 或 NSLog?

如果记录属性字符串,输出是什么?