【问题标题】:Fontsize of attributedString doesn't change属性字符串的字体大小不会改变
【发布时间】:2019-11-06 07:07:31
【问题描述】:

我有一个attributedString,只想更改它的字体大小。为此,我使用了在 StackOverflow 上找到的另一种方法。在大多数情况下,这是可行的,但在某种情况下它不会改变整个 attributedString

改变大小的方法:

/**
*A struct with static methods that can be useful for your GUI
*/
struct GuiUtils {

static func setAttributedStringToSize(attributedString: NSAttributedString, size: CGFloat) -> NSMutableAttributedString {
    let mus = NSMutableAttributedString(attributedString: attributedString)
    mus.enumerateAttribute(.font, in: NSRange(location: 0, length: mus.string.count)) { (value, range, stop) in
        if let oldFont = value as? UIFont {
            let newFont = oldFont.withSize(size)
            mus.addAttribute(.font, value: newFont, range: range)
        }
    }
    return mus
  }
}

工作:

    label.attributedText = GuiUtils.setAttributedStringToSize(attributedString: attributedString, size: fontSize)

不工作:

    mutableAttributedString.replaceCharacters(in: gapRange, with: filledGap)
    label.attributedText = GuiUtils.setAttributedStringToSize(attributedString: mutableAttributedString.replaceCharacters, size: fontSize)

不知何故,被替换的文本并没有改变它的大小。

【问题讨论】:

    标签: swift font-size nsattributedstring


    【解决方案1】:

    请问,您确定您的filledGap 属性字符串具有font 属性吗?因为如果不这样做 - 这部分将不会由 enumerateAttribute 块处理。

    在这种情况下,您的解决方法是将任何字体设置为整个 filledGap 字符串,以确保它的一部分将由 enumerateAttribute 块处理。

    【讨论】:

      猜你喜欢
      • 2016-07-04
      • 2012-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-29
      • 2016-04-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多