實現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層