与圆角落的色的文本背景

时间:2018-03-02 14:16:27

标签: swift text background cornerradius

我目前正在使用Swift中的iOS应用程序,我需要实现附图中显示的文本效果。

我有一个标签,显示用户写的一些文字,我需要将文字背景角(不是标签背景)四舍五入。

有办法吗? 我搜索网络和Stackoverflow但没有运气。

谢谢。

What I need to achieve

1 个答案:

答案 0 :(得分: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()
        }
    }
}

enter image description here