我正在尝试在CGContext中使用CALayerGradient渲染圆锥渐变
let colors = [ UIColor(hue: 0, saturation: 1.0, brightness: 1.0, alpha: 1.0).cgColor,
UIColor(hue: 1/6, saturation: 1.0, brightness: 1.0, alpha: 1.0).cgColor,
UIColor(hue: 2/6, saturation: 1.0, brightness: 1.0, alpha: 1.0).cgColor,
UIColor(hue: 0.5, saturation: 1.0, brightness: 1.0, alpha: 1.0).cgColor,
UIColor(hue: 4/6, saturation: 1.0, brightness: 1.0, alpha: 1.0).cgColor,
UIColor(hue: 5/6, saturation: 1.0, brightness: 1.0, alpha: 1.0).cgColor,
UIColor(hue: 1.0, saturation: 1.0, brightness: 1.0, alpha: 1.0).cgColor ]
let conicGradient = CAGradientLayer()
conicGradient.type = .conic
conicGradient.frame = bounds
conicGradient.startPoint = CGPoint( x: 0.5, y: 0.5 )
conicGradient.endPoint = CGPoint( x: 1, y: 1 )
conicGradient.colors = colors as [Any]
conicGradient.render( in: mContext ) // This doesn't work
if let drawingContext = UIGraphicsGetCurrentContext()
{
drawingContext.draw( myContext.makeImage()!, in: bounds )
}
以上,将类型更改为其他任何类型都可以。
另外,如果我不尝试渲染到CGContext,而是将其添加为子图层,则它可以工作,唯一不起作用的是在CGContext中渲染的圆锥形,这是我想要做的。
那么,我有什么想念的吗,还是圆锥形的渲染没有实现?
最佳答案
与其尝试呈现到任意上下文中,不如尝试使用UIGraphicsPushContext(_:)
推送该上下文,绘制到当前上下文中,然后使用UIGraphicsPopContext()
弹出该上下文。