iOS中利用CAGradientLayer绘制渐变色的方法实例

  

  

以前不用自己切图,现在要自己切图,看到设计稿有好多不同规格的渐变色的背景,一个一个切的话好麻烦,没有想到iOS本来就可以实现渐变色。也就是今天的主角CAGradientLayer。

  

渐变色使用的类是CAGradientLayer,有两个要素,渐变颜色的起点和终点,渐变的颜色集合
  

  

简单示例:

     //设置渐变颜色   CAGradientLayer * gradientLayer=(CAGradientLayer层);   gradientLayer.frame=view.bounds;   [gradientLayer改变颜色:[NSArray arrayWithObjects: (id) (RGB (139、48、164) CGColor], (id) (RGB (61、189、255) CGColor], (id) (RGB (37、182、82) CGColor], nil nil)];   (视图。层addSublayer gradientLayer):;之前      

<>强效果如下图左:

  

 iOS中利用CAGradientLayer绘制渐变色的方法实例

  

  

1, CAGradientLayer是CALayer图层类的子类,用于处理渐变色的层结构。
  

  

2, CAGradientLayer的坐标系统是从坐标(0,0)到(1,1)绘制的矩形。

  

 iOS中利用CAGradientLayer绘制渐变色的方法实例“> <br/>
  </p>
  <p> 3, CAGradientLayer值的帧的大小不为正方形的话,坐标系统会被拉伸。<br/>
  </p>
  <p> 4, CAGradientLayer的曾经繁荣与端点会直接影响颜色的绘制方向。<br/>
  </p>
  <p> 5, CAGradientLayer的颜色分割点是以0 ~ 1的比例来计算的,颜色分割点为渐变色开始或终止的地方。<br/>
  </p>
  <p> </p>
  <ul>
  <李>颜色:渐变颜色数组</李>
  <李>位置:渐变颜色的区间分布(分割点),位置的数组长度和颜色一致。这个属性可不设,默认是nil,系统会平均分布颜色如果有特定需要可设置,数组设置为0 ~ 1之间单调递增。</李>
  <李>曾经繁荣:映射位置中起始位置,用单位向量表示。比如(0,0)表示从左上角开始变化。默认值是:(0.5,0.0)。</李>
  <李>端点:映射位置中结束位置,用单位向量表示。比如(1,1)表示到右下角变化结束。默认值是:(0.5,1.0)。</李>
  <李>类型:默认值是kCAGradientLayerAxial,表示按像素均匀变化。</李>
  </ul>
  <p> </p>
  <p>最简单的三原色渐变例子</p>
  <p>效果展示</p>
  <p> <img src=   UIView * myView=[[UIView alloc] initWithFrame: CGRectMake (50 50 200 200)];   (自我。视图addSubview myView):;      CAGradientLayer * gradientLayer=(CAGradientLayer层);   gradientLayer.frame=myView.bounds;//设置渐变颜色数组   gradientLayer。颜色=@ [(__bridge id)[用户界面颜色redColor]。CGColor (__bridge id)(用户界面颜色greenColor]。CGColor (__bridge id)(用户界面颜色blueColor] .CGColor];//渐变颜色的区间分布   gradientLayer。位置=@ (@0.25,@0.5,@0.75);//起始位置   gradientLayer。曾经繁荣=CGPointMake (0,0);//结束位置   gradientLayer。端点=CGPointMake (0,1);   [myView。层addSublayer: gradientLayer];      

当然,实际使用的肯定比这个颜值高很多的,效果展示:

  

 iOS中利用CAGradientLayer绘制渐变色的方法实例

  

<强>代码如下:

        #定义FHCColorFromRGB (rgbValue)[用户界面颜色colorWithRed:((浮动)((rgbValue,0 xff0000)在祝辞16))/255.0绿色:((浮动)((rgbValue,0 xff00)在祝辞8))/255.0蓝色:((浮动)(rgbValue,0 xff))/255.0 alpha: 1.0)      UIView * myView=[[UIView alloc] initWithFrame: CGRectMake (50 50 200 200)];   (自我。视图addSubview myView):;      CAGradientLayer * gradientLayer=(CAGradientLayer层);   gradientLayer.frame=myView.bounds;   gradientLayer=(CAGradientLayer层);   gradientLayer。颜色=@ [(__bridge id) FHCColorFromRGB (0 x01b6ff)。CGColor (__bridge id) FHCColorFromRGB (0 x4392f6) .CGColor];   gradientLayer。位置=@ (@0.1,@1.0);   gradientLayer。曾经繁荣=CGPointMake (0,0);   gradientLayer。端点=CGPointMake (1.0, 0);   [myView。层addSublayer: gradientLayer];      

是不是美美哒& # 63;当然你可以把它封装成一个类别,以便下次使用。

  

  

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。

iOS中利用CAGradientLayer绘制渐变色的方法实例