Advertisement
Guest User

Untitled

a guest
Nov 9th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 1.46 KB | None | 0 0
  1. //
  2. //  gradient.swift
  3. //  AlMall
  4. //
  5. //  Created by Dima Paliychuk on 11/9/18.
  6. //  Copyright © 2018 Yatseyko Yuriy. All rights reserved.
  7. //
  8.  
  9. import Foundation
  10.  
  11. @IBDesignable class GradientView: UIView {
  12.     @IBInspectable var firstColor: UIColor = UIColor.red
  13.     @IBInspectable var secondColor: UIColor = UIColor.green
  14.    
  15.     @IBInspectable var vertical: Bool = true
  16.    
  17.     lazy var gradientLayer: CAGradientLayer = {
  18.         let layer = CAGradientLayer()
  19.         layer.colors = [firstColor.cgColor, secondColor.cgColor]
  20.         layer.startPoint = CGPoint.zero
  21.         return layer
  22.     }()
  23.    
  24.     //MARK: -
  25.    
  26.     required init?(coder aDecoder: NSCoder) {
  27.         super.init(coder: aDecoder)
  28.        
  29.         applyGradient()
  30.     }
  31.    
  32.     override init(frame: CGRect) {
  33.         super.init(frame: frame)
  34.        
  35.         applyGradient()
  36.     }
  37.    
  38.     override func prepareForInterfaceBuilder() {
  39.         super.prepareForInterfaceBuilder()
  40.         applyGradient()
  41.     }
  42.    
  43.     override func layoutSubviews() {
  44.         super.layoutSubviews()
  45.         updateGradientFrame()
  46.     }
  47.    
  48.     //MARK: -
  49.    
  50.     func applyGradient() {
  51.         updateGradientDirection()
  52.         layer.sublayers = [gradientLayer]
  53.     }
  54.    
  55.     func updateGradientFrame() {
  56.         gradientLayer.frame = bounds
  57.     }
  58.    
  59.     func updateGradientDirection() {
  60.         gradientLayer.endPoint = vertical ? CGPoint(x: 0, y: 1) : CGPoint(x: 1, y: 0)
  61.     }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement