Применить скошенный радиальный градиент к UIView - PullRequest
1 голос
/ 16 января 2020

Я сейчас использую следующий код здесь

@IBDesignable class RadialGradientView: UIView {

    @IBInspectable var outsideColor: UIColor = UIColor.red
    @IBInspectable var insideColor: UIColor = UIColor.green

    override func draw(_ rect: CGRect) {
        let colors = [insideColor.cgColor, outsideColor.cgColor] as CFArray
        let endRadius = sqrt(pow(frame.width/2, 2) + pow(frame.height/2, 2))
        let center = CGPoint(x: bounds.size.width / 2, y: bounds.size.height / 2)
        let gradient = CGGradient(colorsSpace: nil, colors: colors, locations: nil)
        let context = UIGraphicsGetCurrentContext()

        context?.drawRadialGradient(gradient!, startCenter: center, startRadius: 0.0, endCenter: center, endRadius: endRadius, options: CGGradientDrawingOptions.drawsBeforeStartLocation)
    }
}

Этот код нарисует радиальный градиент, который выглядит следующим образом:

enter image description here

Я пытаюсь сделать так, чтобы это выглядело ниже (как это выглядит в текущей версии приложения для ПК).

enter image description here

Вы заметите, что в настольной версии градиент имеет синий сверху и снизу , а белая область растянута, чтобы включить больше текстовой области , чтобы ее было легче читать .

Как я могу воссоздать этот эффект? Я пытался часами играть с разными номерами и настройками в текущем коде, но пока безрезультатно (например, изменение endRadius).

Любая помощь или идеи приветствуются.

...