Цветной текстовый фон с закругленными углами


В настоящее время я работаю над приложением iOS в Swift, и мне нужно добиться текстового эффекта, показанного на прилагаемом рисунке.

У меня есть метка, которая отображает некоторый текст, написанный пользователем, и мне нужно сделать углы фона текста (не фон метки) закругленными.

Есть ли способ сделать это? Я бы поискал в интернете и Stackoverflow, но безрезультатно.

Спасибо.

Чего мне нужно добиться

1 2

1 ответ:

Вот код, который может вам помочь. Результат, который я получил, очень похож на то, что вы хотите.

class MyTextView: UITextView {

    let textViewPadding: CGFloat = 7.0

    override func draw(_ rect: CGRect) {
        self.layoutManager.enumerateLineFragments(forGlyphRange: NSMakeRange(0, self.text.count)) { (rect, usedRect, textContainer, glyphRange, Bool) in

            let rect = CGRect(x: usedRect.origin.x, y: usedRect.origin.y + self.textViewPadding, width: usedRect.size.width, height: usedRect.size.height*1.2)
            let rectanglePath = UIBezierPath(roundedRect: rect, cornerRadius: 3)
            UIColor.red.setFill()
            rectanglePath.fill()
        }
    }
}

Введите описание изображения здесь