NSMutableAttributedString addAttribute для диапазона применяются ко всей строке - PullRequest
0 голосов
/ 11 февраля 2019

Я создал NSMutableAttributedString с разными атрибутами, а затем для одного диапазона я добавил атрибут жирным шрифтом.Пример

let attText = NSMutableAttributedString(string: string, attributes: [
            NSAttributedString.Key.font: UIFont.systemFont(ofSize: 15),
            NSAttributedString.Key.foregroundColor: UIColor.Branding.darkText,
            NSAttributedString.Key.paragraphStyle: paragraphStyle
        ])
        if let word = string.components(separatedBy: " ").first {
            let range = attText.mutableString.range(of: word, options: .caseInsensitive)
            if range.location != NSNotFound {
                attText.addAttribute(NSAttributedString.Key.font, value: UIFont.systemFont(ofSize: 15, weight: .semibold), range: range)
            }
        }

Но когда я запустил приложение, я увидел всю строку жирным шрифтом.Я видел атрибутивную строку в отладке, и это выглядело так:

 some : Create{
    NSColor = "UIExtendedSRGBColorSpace 0.247059 0.278431 0.337255 1";
    NSFont = "<UICTFont: 0x7ff1c1c169e0> font-family: \".SFUIText-Semibold\"; font-weight: bold; font-style: normal; font-size: 15.00pt";
}
tasks for people{
    NSColor = "UIExtendedSRGBColorSpace 0.247059 0.278431 0.337255 1";
    NSFont = "<UICTFont: 0x7ff1c1c388d0> font-family: \".SFUIText\"; font-weight: normal; font-style: normal; font-size: 15.00pt";
}

Как я понял, отладочная информация в порядке, но почему в симуляторе iOS я вижу всю строку жирным шрифтом?

1 Ответ

0 голосов
/ 11 февраля 2019

Пожалуйста, посмотрите документ attributedText UILabel:

  label.attributedText =  attText
  ``label.font = UIFont.systemFont(ofSize: 15, weight: .semibold)
  print(label.attributedText) 

После установки атрибута атрибута UILabel, вы не можете изменить шрифт, textColor или другое свойство, связанное со стилем.В противном случае вы получите то, что имеете сейчас.Я предполагаю, что в каком-то месте есть какая-то модификация, упущенная из виду.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...