【问题标题】:Is it possible to set multiple font attributes using an NSAttributedString是否可以使用 NSAttributedString 设置多个字体属性
【发布时间】:2013-01-08 17:03:27
【问题描述】:

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

    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];

【问题讨论】:

  • 您使用title 初始化字符串但使用descriptionText 的长度是否有任何具体原因?
  • 它们可以互换,但我应该使用其中一个。我将descriptionText传递给方法,本地方法变量是title。

标签: ios string nsattributedstring


【解决方案1】:

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

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

而不是:

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

【讨论】:

    【解决方案2】:

    我的 2 美分 ;) Swift 3

    func attributedTexts(text1: String, attribs1: [String : Any]?, text2: String, attribs2: [String : Any]?) {
    
        let str = NSMutableAttributedString(string: text1, attributes: attribs1);
        str.append(NSAttributedString(string: text2, attributes: attribs2))
    
        return str
    }
    

    用法:

    let attr1 = [NSFontAttributeName: UIFont.boldSystemFont(ofSize: 24)]
    let attr2 = [NSFontAttributeName: UIFont.systemFont(ofSize: 16)]
    let attributedString = self.attributedTexts(text1: "First Text", attribs1: attr1, text2: "\nSecond Text", attribs2: attr2)
    

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        请看看这个网站和视频,你可能会得到一些有用的东西

        Rich text

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-10-05
          • 2013-11-15
          • 2020-05-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多