title: Draw gradient inside UIView draw() with swift
body: <p>I want to put a gradient background in all my views.</p>
  
  <p>The way that I thought to do this without the need to create a IBOutlet of a view in all view controllers is to create a new class from UIView, and inside the draw() I put the code that makes a CAGradientLayer in the view.</p>
  
  <p>So, in the interface builder I just need to select the background view and set its class as my custom class. It works so far.</p>
  
  <p>My question is if I can do that without problems. Somebody knows is it ok?
  Because the model file that inherit from UIView come with the comment: 
  //Only override draw() if you perform custom drawing.</p>
  
  <p>And I don't know if create a layer counts. Or if draw() is only to low level drawing or something like that. Do not know nothing about the best usage of the draw() func.</p>
  
  <p>This is the code:</p>
  
  <pre><code>override func draw(_ rect: CGRect) {
  
          let layer = CAGradientLayer()
          layer.frame = CGRect(x: 0, y: 0, width: self.frame.width, height: self.frame.height)
  
          let color1 = UIColor(red: 4/255, green: 39/255, blue: 105/255, alpha: 1)
          let color2 = UIColor(red: 1/255, green: 91/255, blue: 168/255, alpha: 1)
  
          layer.colors = [color1.cgColor, color2.cgColor]
          self.layer.addSublayer(layer)
      }
  </code></pre>