AngleGradientLayer 是角度渐变的 CALayer 实现。
pod 'AngleGradientLayer', '~> 1.0'
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]
}
}
(查看演示项目以获取更多信息。)
#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
在与半透明视图一起工作时,务必在层的视图中设置 backgroundColor
属性
myview.backgroundColor = UIColor.clearColor()
backgroundColor
默认为 nil
,与黑色混合。