[iOS]实现UIView的背景渐变

我们经常需要把UIView的背景色设置为渐变色,虽然找一张渐变的背景图很方便,但是图片是要占用资源的,所以我们最好使用代码来实现效果。

我们使用的是CAGradientLayer来实现这个效果。

上代码

    //实现背景渐变
    
    //初始化我们需要改变背景色的UIView,并添加在视图上
    self.theView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 200)];
    [self.view addSubview:self.theView];
    
    //初始化CAGradientlayer对象,使它的大小为UIView的大小
    self.gradientLayer = [CAGradientLayer layer];
    self.gradientLayer.frame = self.theView.bounds;
    
    //将CAGradientlayer对象添加在我们要设置背景色的视图的layer层
    [self.theView.layer addSublayer:self.gradientLayer];
    
    //设置渐变区域的起始和终止位置(范围为0-1)
    self.gradientLayer.startPoint = CGPointMake(0, 0);
    self.gradientLayer.endPoint = CGPointMake(0, 1);
    
    //设置颜色数组
    self.gradientLayer.colors = @[(__bridge id)[UIColor blueColor].CGColor,
                                  (__bridge id)[UIColor redColor].CGColor];
    
    //设置颜色分割点(范围:0-1)
    self.gradientLayer.locations = @[@(0.5f), @(1.0f)];

注意

  • 渐变区域的范围是 (0,0) -> (1,1)
  • 渐变层要添加在需要渐变视图的layer层
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 我们经常需要把UIView的背景色设置为渐变色,虽然找一张渐变的背景图很方便,但是图片是要占用资源的,所以我们最好...
    程序猿小武阅读 626评论 0 0
  • 转载:http://www.jianshu.com/p/32fcadd12108 每个UIView有一个伙伴称为l...
    F麦子阅读 6,307评论 0 13
  • 每个UIView有一个伙伴称为layer,一个CALayer。UIView实际上并没有把自己画到屏幕上;它绘制本身...
    shenzhenboy阅读 3,155评论 0 17
  • 幼儿园排练六一节目,晚上回来,天天很认真的练习。可能是协调力差,有个动作做的很不好。 昨晚回来,他很着急,于是吃过...
    素衣烟霞阅读 187评论 0 1
  • 一遇见你,真好 “多幸运,在最美的年纪遇见了你。” 我是相信缘份这东西的,从相识到相知,是心与心交流,而从相知到相...
    十二楼中阅读 424评论 3 1