Размер шрифта приписываемой строки не изменяется - PullRequest
0 голосов
/ 24 июня 2019

У меня есть 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)

Почему-то замененный текст не меняет своего размера.

1 Ответ

2 голосов
/ 24 июня 2019

Извините, но вы уверены, что ваша строка с атрибутом filledGap имеет атрибут font?Потому что, если это не так - эта часть не будет обрабатываться блоком enumerateAttribute.

В этом случае ваше исправление будет состоять в том, чтобы просто установить любой шрифт для всей строки filledGap, чтобы быть уверенным, чтоэта часть будет обрабатываться блоком enumerateAttribute.

...