Drawing gradient on UIView not working with iOS 9

I’m trying to draw a gradient on the background view of a View Controller with iOS 9 but, I don’t know why, isn’t working

Here is my method, which is called from viewDidLoad

  • Modal segue, navigation bar disappears
  • Runtime change the language/localization in Three20
  • how to disable a navigation bar button item in iOS
  • iOS App: Several crashes with common themes of: SIGSEGV and _sigtramp
  • MS Excel type spreadsheet creation using objective-c for iOS app
  • Swift, Self from AnyObject
  • - (void)drawGradient
      CAGradientLayer *gradient = [CAGradientLayer layer];
      gradient.frame = self.view.bounds;
      gradient.colors = @[[UIColor greenColor], [UIColor redColor]];
      gradient.locations = @[@0.0, @1.0];
      [self.view.layer insertSublayer:gradient atIndex:0];

    But nothing happens and gradient doesn’t appear.
    What i’m doing wrong?

    Solutions Collect From Internet About “Drawing gradient on UIView not working with iOS 9”

    Thanks to Larme’s comment, I figured out my mistake.

    Instead of

    gradient.colors = @[[UIColor greenColor], [UIColor redColor]];

    the right this is

    gradient.colors = @[(id)[UIColor greenColor].CGColor, (id)[UIColor redColor].CGColor];

    Because gradient.colors expects a NSArray of CGColorRef. The (id) cast is also needed in order to create the NSArray.