NSAttributedString: как сделать многострочное в другом NSAttributedString - PullRequest
1 голос
/ 25 июня 2019

Я пытаюсь создать многострочный отдельный текст в другом тексте, чтобы добиться стиля текста ниже.

enter image description here

Я попробовал приведенный ниже код для получения цели, но третья часть кода создает проблему (со средним шрифтом)

enter image description here

    private func createLimitedDetailText() -> NSAttributedString {
        let totalText = "Attension, only\n 6 spaces\n left!"
        let paragraphStyle = NSMutableParagraphStyle()
        paragraphStyle.alignment = .center

        let attributedString = NSMutableAttributedString(string: totalText, attributes: [
            .font: FontFamily.OpenSans.light.font(size: 29.0),
            .foregroundColor: UIColor.white,
            ])

        let bigText = attributedString.addAttribute(.font, value: FontFamily.OpenSans.extrabold.font(size: 70), range: NSRange(location: 17, length: 1))
        let medium = attributedString.addAttribute(.font, value: FontFamily.OpenSans.semibold.font(size: 29), range: NSRange(location: 18, length: 14))

        let textRange = NSRange(location: 0, length: attributedString.length)
        attributedString.addAttribute(NSAttributedString.Key.paragraphStyle, value: paragraphStyle, range: textRange)

        return attributedString
    }

1 Ответ

0 голосов
/ 26 июня 2019

Если кто-то интересуется ответом, приведенный ниже код генерирует точно такой же результат:

    private func createLimitedDetailText() -> NSAttributedString {
        let totalText = "Attension, only\n 6"
        let paragraphStyle = NSMutableParagraphStyle()
        paragraphStyle.lineHeightMultiple = 0.90
        paragraphStyle.alignment = .center

        let attributedString = NSMutableAttributedString(string: totalText, attributes: [
            .font: FontFamily.OpenSans.light.font(size: 29.0),
            .foregroundColor: UIColor.white,
            NSAttributedString.Key.paragraphStyle: paragraphStyle
            ])

        attributedString.addAttribute(.font, value: FontFamily.OpenSans.extrabold.font(size: 70), range: NSRange(location: 17, length: 1))

        let paragraphStyle2 = NSMutableParagraphStyle()
        paragraphStyle2.lineHeightMultiple = 0.30
        paragraphStyle2.alignment = .center

        let attributedString2 = NSMutableAttributedString(string: "    spaces\n     left!", attributes: [
            .font: FontFamily.OpenSans.semibold.font(size: 29.0),
            .foregroundColor: UIColor.white,
            .baselineOffset: 35,
            .paragraphStyle: paragraphStyle2
            ])
        attributedString.append(attributedString2)

        return attributedString
    }
...