Skip to content

Instantly share code, notes, and snippets.

@cgoldsby
Created August 10, 2016 22:08
Show Gist options
  • Save cgoldsby/094c51f9908ff40fbca54b7999c0a0a2 to your computer and use it in GitHub Desktop.
Save cgoldsby/094c51f9908ff40fbca54b7999c0a0a2 to your computer and use it in GitHub Desktop.
Gradient Mask v. Gradient Layer
import UIKit
import XCPlayground
import UIKit
final public class GradientView: UIView {
override public class func layerClass() -> AnyClass {
return CAGradientLayer.self
}
public var colors: [AnyObject]? {
set {
gradientLayer.colors = newValue
}
get {
return gradientLayer.colors
}
}
// MARK: - Private
private lazy var gradientLayer: CAGradientLayer = {
return self.layer as! CAGradientLayer
}()
}
let backgroundColor = UIColor.magentaColor()
let gradientColor = UIColor.purpleColor()
let containerView = UIView(frame: CGRect(x: 0.0, y: 0.0, width: 400, height: 400))
containerView.backgroundColor = backgroundColor
XCPlaygroundPage.currentPage.liveView = containerView
let gradientView = GradientView(frame: CGRect(x: 0, y: 200, width: 200, height: 200))
gradientView.backgroundColor = .clearColor()
gradientView.colors = [
UIColor.clearColor().CGColor,
gradientColor.CGColor
]
containerView.addSubview(gradientView)
let gradientView1 = GradientView(frame: CGRect(x: 0, y: 0, width: 200, height: 200))
gradientView1.backgroundColor = .clearColor()
gradientView1.colors = [
UIColor.clearColor().CGColor,
gradientColor.CGColor
]
containerView.addSubview(gradientView1)
let view = UIView(frame: CGRect(x: 200, y: 200, width: 200, height: 200))
view.backgroundColor = .clearColor()
let gradientMask = CAGradientLayer()
gradientMask.frame = view.bounds
gradientMask.colors = [
UIColor.clearColor().CGColor,
UIColor.blackColor().CGColor
]
view.backgroundColor = gradientColor
view.layer.mask = gradientMask
containerView.addSubview(view)
let view1 = UIView(frame: CGRect(x: 200, y: 0, width: 200, height: 200))
view1.backgroundColor = .clearColor()
let gradientMask1 = CAGradientLayer()
gradientMask1.frame = view1.bounds
gradientMask1.colors = [
UIColor.clearColor().CGColor,
UIColor.blackColor().CGColor
]
view1.backgroundColor = gradientColor
view1.layer.mask = gradientMask1
containerView.addSubview(view1)
let label = UILabel(frame: gradientView.bounds)
label.textAlignment = .Center
label.textColor = .whiteColor()
label.font = UIFont.boldSystemFontOfSize(200)
label.text = "A"
gradientView.addSubview(label)
let label1 = UILabel(frame: view.bounds)
label1.textAlignment = .Center
label1.textColor = .whiteColor()
label1.font = UIFont.boldSystemFontOfSize(200)
label1.text = "A"
view.addSubview(label1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment