Created
August 10, 2016 22:08
-
-
Save cgoldsby/094c51f9908ff40fbca54b7999c0a0a2 to your computer and use it in GitHub Desktop.
Gradient Mask v. Gradient Layer
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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