【发布时间】:2021-09-02 18:02:50
【问题描述】:
我遇到了一个使用UIGraphicsImageRender 在 Medium 上画导师的例子。示例代码如下:
let renderer = UIGraphicsImageRenderer(size: CGSize(width: 20, height: 20))
let img = renderer.image { (ctx) in
let size = renderer.format.bounds.size
UIColor.red.setFill()
ctx.fill(CGRect(x: 0, y: 0, width: size.width, height: size.height))
}
在上面的代码中,UIColor.red.setFill() 显然只使指定的颜色,即红色,准备填充某个形状。然而,神奇的是,UIGraphicsImageRendererContext 的 ctx 似乎收到了一条通知,它将用红色填充CGRect 形状!
单纯从这里的代码看不出UIColor实例方法setFill()和UIGraphicsImageRendererContext实例方法fill(_: CGRect)之间的联系。那么,它是怎么知道的呢? UIColor设置填充时UIGraphicsImageRendererContext如何填充?
谢谢。
【问题讨论】:
标签: ios uicolor cgcontext uigraphicscontext uigraphicsimagerenderer