实现UIView背景颜色渐变
平时开发中,会有遇到需要渐变背景颜色的需求,虽然说用一张做的的渐变图省事方便,但无疑会占用系统资源,增加开发包大小,最优方案还是用代码来实现,以下为代码实现效果。
使用 CAGradientLayer来实现,上代码
@interface MeHeadView()
//先定义
@property(nonatomic,strong)UIView *bgView;
@property(nonatomic,strong)CAGradientLayer *gradientLayer;
@end
//实现
-(void)gradientColor{
//初始化我们需要改变背景色的UIView,并添加在视图上
self.bgView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT*0.25)];
[self addSubview:self.bgView];
//初始化CAGradientlayer对象,使它的大小为UIView的大小
self.gradientLayer = [CAGradientLayer layer];
self.gradientLayer.frame = self.bgView.bounds;
//将CAGradientlayer对象添加在我们要设置背景色的视图的layer层
[self.bgView.layer addSublayer:self.gradientLayer];
//设置渐变区域的起始和终止位置(范围为0-1)
self.gradientLayer.startPoint = CGPointMake(0, 0);
self.gradientLayer.endPoint = CGPointMake(1, 0);
//设置颜色数组
self.gradientLayer.colors = @[(__bridge id)[UIColor colorWithHex:0xf4792e].CGColor,
(__bridge id)[UIColor colorWithHex:0xfe8c01].CGColor];
//设置颜色分割点(范围:0-1)
self.gradientLayer.locations = @[@(0.5f), @(1.0f)];
}
注意
- 渐变区域的范围是 (0,0) -> (1,1)
- 渐变层要添加在需要渐变视图的layer层