文系プログラマの勉強ノート

スマホアプリ開発やデザインなどについて勉強したことをまとめています

【Xcode】コードだけでグラデーション作成

下図のようなグラデーションをコードだけで作る方法です。
f:id:an3714106:20170611133939p:plain:w250

override func viewDidLoad() {
    super.viewDidLoad()

    let colors = [UIColor(red: 112/255, green: 134/255, blue: 241/255, alpha: 1.0).cgColor,
                  UIColor(red: 40/255, green: 169/255, blue: 255/255, alpha: 1.0).cgColor,
                  UIColor(red: 180/255, green: 225/255, blue: 255/255, alpha: 1.0).cgColor]
    let gradientLayer = gradientLayerWith(frame: view.bounds, colors: colors)
    view.layer.addSublayer(gradientLayer)
}

func gradientLayerWith(frame: CGRect, colors: Array<Any>) -> CAGradientLayer {

    let layer = CAGradientLayer()
    layer.frame = frame
    layer.colors = colors

    // グラデーションの向きを横にしたい場合
    layer.startPoint = CGPoint(x: 0, y: 0.5)
    layer.endPoint = CGPoint(x: 1, y: 0.5)

    return layer
}