У меня есть собственный NSLayoutManager, и я хочу нарисовать размытый прямоугольник над словом. Я пытаюсь просто нарисовать красный прямоугольник прямо сейчас, и он ничего не рисует. Мне нужно сделать это на изображении, потому что на изображении вы можете применить gaussianblur. Изображение не ноль, так что это не проблема.
Код чертежа
guard let context = UIGraphicsGetCurrentContext() else {
return
}
UIGraphicsBeginImageContext(blurRect.size);
let renderer = UIGraphicsImageRenderer(size: blurRect.size)
let image = renderer.image { ctx in
ctx.cgContext.setFillColor(UIColor.red.cgColor)
ctx.cgContext.setStrokeColor(UIColor.black.cgColor)
ctx.cgContext.setLineWidth(10)
ctx.cgContext.addRect(blurRect)
ctx.cgContext.drawPath(using: .fillStroke)
}
UIGraphicsEndImageContext()
image.draw(in: blurRect)
context.draw(image.cgImage!, in: blurRect)
Я называю этот код в этом методе:
override func drawGlyphs(forGlyphRange glyphsToShow: NSRange, at origin: CGPoint) {