CAGradientLayer + UIBezierPath 为视图画渐变背景色

CAGradientLayer 继承于CALayer的渐变层

效果图:


渐变背景色
示例代码:
    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(CGRectGetMidX(self.view.frame) - 100 , CGRectGetMidY(self.view.frame) - 100, 200, 200)];
    
    view.backgroundColor = [UIColor lightGrayColor];
    
    [self.view addSubview:view]; 

  CAGradientLayer *gradLayer = [CAGradientLayer layer];
   
    gradLayer.frame = CGRectMake(100, 100, 100, 100);
    
    gradLayer.colors = @[(__bridge id)[UIColor redColor].CGColor,(__bridge id)[UIColor greenColor].CGColor,(__bridge id)[UIColor orangeColor].CGColor];

    gradLayer.startPoint = CGPointMake(0, 1);
    gradLayer.endPoint = CGPointMake(1, 1);
    gradLayer.locations = @[@0.2,@0.5,@0.7];
    gradLayer.type = kCAGradientLayerAxial;
   
    [view.layer addSublayer:gradLayer];
    

属性说明:

frame : 渐变层的位置及大小
colors: 各个渐变范围的颜色
startPoint 、endPoint: 渐变层起点 endPoint 渐变层终点 确定渐变的方向 如: (0,0)->(1,1) 左上到右下渐变 (0,0)->(0,1) 从上到下渐变 (0,0)->(1,0) 从左到右渐变
locations: 开始渐变的停止位置即非渐变色的位置,为递增数组,默认会根据颜色个数均匀分布,如三个颜色默认数组为@[0,0.5,1],即在0处为红色0.5处为绿色1处为橘色,之间为渐变色 NSNumber 对象数组 每一个number的范围为[0,1]
type: 渐变方式,默认 kCAGradientLayerAxial轴向方式,也只有之一种方式

特殊形状的渐变

效果图:


特殊形状渐变背景色
示例代码:
    //给渐变层设置 mask 属性 
    {
        // 设置只显示一个三角形范围的渐变色
        UIBezierPath *shapeLayerPath = [[UIBezierPath alloc] init];
        // 点的坐标是相对于渐变层的
        [shapeLayerPath moveToPoint:CGPointMake(0,100)];
        [shapeLayerPath addLineToPoint:CGPointMake(50, 50)];
        [shapeLayerPath addLineToPoint:CGPointMake(100, 100)];
        
        CAShapeLayer *shapeLayer = [CAShapeLayer layer];
        shapeLayer.path = shapeLayerPath.CGPath;
        
        gradLayer.mask = shapeLayer;
  }

mask: 遮盖层,CALayer类型,能够让渐变色显示特殊形状

用途 :折线图画渐变阴影等。


转载于:https://www.cnblogs.com/jaesun/p/CAGradientLayer--UIBezierPath-wei-shi-tu-hua-jian-.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值