Skip to content

Instantly share code, notes, and snippets.

@toshi0383
Created September 26, 2017 07:45
Show Gist options
  • Save toshi0383/6447dfca2acee8dc049019eccd696fbf to your computer and use it in GitHub Desktop.
Save toshi0383/6447dfca2acee8dc049019eccd696fbf to your computer and use it in GitHub Desktop.
//: Playground - noun: a place where people can play
// Vertical and Horizontal alpha view demo
// Xcode9 required
import UIKit
do {
let v = UIView(frame: CGRect(x: 0, y: 0, width: 500, height: 500))
v.backgroundColor = .clear
let horizontalGradientLayer = CAGradientLayer()
horizontalGradientLayer.frame = v.frame
horizontalGradientLayer.startPoint = CGPoint(x: 0, y: 0.5)
horizontalGradientLayer.endPoint = CGPoint(x: 65 / 500, y: 0.5)
horizontalGradientLayer.colors = [(0.84, 0.0), (0.93, 1.0)].map { UIColor(red: $0, green: $0, blue: $0, alpha: $1).cgColor }
v.layer.mask = horizontalGradientLayer
let v2 = UIView(frame: v.frame)
v2.backgroundColor = .green
let verticalGradientLayer = CAGradientLayer()
verticalGradientLayer.frame = v.frame
verticalGradientLayer.startPoint = CGPoint(x: 0.5, y: 0)
verticalGradientLayer.endPoint = CGPoint(x: 0.5, y: 65 / 500)
verticalGradientLayer.colors = [(0.84, 0.0), (0.93, 1.0)].map { UIColor(red: $0, green: $0, blue: $0, alpha: $1).cgColor }
v2.layer.mask = verticalGradientLayer
v.addSubview(v2)
let button = UIButton(frame: CGRect(x: 0, y: 0, width: 100, height: 40))
button.backgroundColor = .red
button.setTitle("hello", for: .normal)
button.titleLabel?.font = UIFont.systemFont(ofSize: 40)
button.setTitleColor(.black, for: .normal)
v2.addSubview(button)
v
}
do {
let v = UIView(frame: CGRect(x: 0, y: 0, width: 500, height: 500))
v.backgroundColor = .orange
let horizontalGradientLayer = CAGradientLayer()
horizontalGradientLayer.frame = v.frame
horizontalGradientLayer.startPoint = CGPoint(x: 0, y: 0.5)
horizontalGradientLayer.endPoint = CGPoint(x: 65 / 500, y: 0.5)
horizontalGradientLayer.colors = [(0.84, 0.0), (0.93, 1.0)].map { UIColor(red: $0, green: $0, blue: $0, alpha: $1).cgColor }
let verticalGradientLayer = CAGradientLayer()
verticalGradientLayer.frame = v.frame
verticalGradientLayer.startPoint = CGPoint(x: 0.5, y: 0)
verticalGradientLayer.endPoint = CGPoint(x: 0.5, y: 65 / 500)
verticalGradientLayer.colors = [(0.84, 0.0), (0.93, 1.0)].map { UIColor(red: $0, green: $0, blue: $0, alpha: $1).cgColor }
let button = UIButton(frame: CGRect(x: 20, y: 0, width: 100, height: 40))
button.setTitle("hello", for: .normal)
button.titleLabel?.font = UIFont.systemFont(ofSize: 40)
button.setTitleColor(.black, for: .normal)
v.addSubview(button)
v.layer.mask = horizontalGradientLayer
horizontalGradientLayer.addSublayer(verticalGradientLayer)
v
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment