我正在尝试在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()弹出该上下文。

10-08 17:41