實現UIView背景顏色漸變

實現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層
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章