NSAttributedString, как использовать NSParagraphStyle, чтобы установить линию выравнивания текстового центра - PullRequest
0 голосов
/ 10 октября 2019

Я пытаюсь изменить свой атрибутивный текст в UILable так, чтобы одна строка была в центре. Поэтому я добавляю атрибуты в NSAttributedString с помощью NSParagrahStyle, как показано ниже

var centerParagraphAttributes : [NSAttributedString.Key : Any] {

        let paragraph = NSMutableParagraphStyle()
        paragraph.alignment = .center

        return [
            NSAttributedString.Key.paragraphStyle : paragraph,
            NSAttributedString.Key.font : AppFonts.SFUITextBold.font(size: 14.0)
        ]
    }

 // center - or -
            if let range = attributedText.string.range(of: "\n\r- or -\n\r") {
                let nsrange = NSRange(range, in: attributedText.string)
                attributedText.addAttributes(centerParagraphAttributes, range: nsrange)
            }

Но этот код ничего не делает, и строка выравнивается по левому краю, как ранее.

1 Ответ

0 голосов
/ 10 октября 2019

Хорошо, приведенный выше код работает и выравнивает строку текста. Я только пытался установить стиль абзаца для подстроки без "\n\r" специальных символов, которые начинаются с новых абзацев, а затем после добавления этого в подстроку я оставил пустое пространство между "\n\r - or -\n\r", чтобы он не совпадал с range(of: "\n\r- or -\n\r")

Более того, это работает даже при использовании только начального "\ n \ r- или -", поэтому дополнительное пространство внизу абзаца не требуется

...