A CALayer implementation of angle gradient for ios

AngleGradientLayer

This library is deprecated in favor of iOS 12 CAGradientLayer layer type .conic

See ConicSample project for CAGradientLayer examples ported from AngleGradientLayer.

AngleGradientLayer is a CALayer implementation of angle gradient.

Installing

pod 'AngleGradientLayer', '~> 1.0'

[Swift] Using in your code

import AngleGradientLayer

class MyView: UIView {

    override class func layerClass() -> AnyClass {
        return AngleGradientLayer.self
    }

    override init(frame: CGRect) {
        super.init(frame: frame)

        let l: AngleGradientLayer = self.layer as! AngleGradientLayer
        l.colors = [
            UIColor(red: 0, green: 0, blue: 0.5, alpha: 1).CGColor,
            UIColor(red: 1, green: 1, blue: 0.4, alpha: 1).CGColor]
    }
}

[Objective-C] Using in your code

(See demo project for more.)

#import "AngleGradientLayer.h"

@interface MyView : UIView
@end

@implementation MyView

+ (Class)layerClass
{
	return [AngleGradientLayer class];
}

- (id)initWithFrame:(CGRect)frame
{
	if (!(self = [super initWithFrame:frame]))
		return nil;

	AngleGradientLayer *l = (AngleGradientLayer *)self.layer;
	l.colors = [NSArray arrayWithObjects:
		(id)[UIColor colorWithRed:0 green:0 blue:0.5 alpha:1].CGColor,
		(id)[UIColor colorWithRed:1 green:1 blue:0.4 alpha:1].CGColor,
		nil];

	return self;
}

@end

Notes

When working with semi-transparent views, be sure to set backgroundColor property on the layer's view

myview.backgroundColor = UIColor.clearColor()

backgroundColor by default is nil, blending to black color.

GitHub

https://github.com/paiv/AngleGradientLayer