Я сейчас использую следующий код здесь
@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)
}
}
Этот код нарисует радиальный градиент, который выглядит следующим образом:
Я пытаюсь сделать так, чтобы это выглядело ниже (как это выглядит в текущей версии приложения для ПК).
Вы заметите, что в настольной версии градиент имеет синий сверху и снизу , а белая область растянута, чтобы включить больше текстовой области , чтобы ее было легче читать .
Как я могу воссоздать этот эффект? Я пытался часами играть с разными номерами и настройками в текущем коде, но пока безрезультатно (например, изменение endRadius).
Любая помощь или идеи приветствуются.