Search code examples
iosswiftios8core-animation

What's the equivalent of CAGradientLayer in swift?


I'm trying to port over some objective-C code that creates a gradient layer

CAGradientLayer *gradientLayer = [CAGradientLayer layer];
gradientLayer.colors = colors;
gradientLayer.locations = locations;
gradientLayer.frame = view.bounds;

[view.layer insertSublayer:gradientLayer atIndex:index];

However in Swift, CAGradientLayer does not seem to have a static 'layer' method or a constructor. Trying to use it as a type produces:

let a:CAGradientLayer? = null

Error: Use of module 'CAGradientLayer' as a type

As far as I can tell, CAGradientLayer is not a module I can import. What's the correct way of doing a gradient layer in Swift?


Solution

  • You need to import QuartzCore first:

    import QuartzCore
    
    let a:CAGradientLayer = CAGradientLayer()