Я переопределил draw (_ rect: CGRect) метод из UITextView
class MyUITextView: UITextView {
override func draw(_ rect: CGRect) {
drawBackgrounds(rect)
super.draw(rect)
}
private func drawBackgrounds(_ rect: CGRect) {
guard let attributed = self.attributedText,
let context = UIGraphicsGetCurrentContext() else { return }
// draw overlapped background on CGContext
}
}
Выглядит нормально перед прокруткой. После прокрутки фоны не перемещаются. На скриншоте текст и фон не отображаются в одном слое.
Как получить правильный контекст для рисования?
Примечание:
- Я также пробовал это на UILabel путем переопределения drawText (in:) . Текст и рисунок находятся в одном слое.