代码如下
typedef enum {GradientLayerKindLeftRight = 2000,GradientLayerKindUpDown,GradientLayerKindLBRT,//左下-右上GradientLayerKindLTRB //左上-右下
}GradientLayerKind;//--------------------------------------------------------------//  创建矩形渐变图层//// @param frame      渐变图层的frame//  @param startColor 起始颜色(设置起止颜色的时候可以设置颜色的透明度达到透明度渐变的效果)//  @param endColor   终止颜色//  @param kind       渐变类型//                    GradientLayerKindLeftRight = 1,//左-右//                    GradientLayerKindUpDown,       //上-下//                    GradientLayerKindLBRT,         //左下-右上//                    GradientLayerKindLTRB          //左上-右下//  @return 渐变色layer//----------------------------------------------------------
- (CALayer*)ct_getGradientLayerWithFrame:(CGRect)frame StartColor:(UIColor *)startColor endColor:(UIColor*)endColor andKind:(GradientLayerKind)kind{//渐变图层CAGradientLayer *gradientLayer =  [CAGradientLayer layer];gradientLayer.frame = frame;[gradientLayer setColors:[NSArray arrayWithObjects:(id)[startColor CGColor],(id)[endColor CGColor], nil]];if (kind == GradientLayerKindUpDown) {[gradientLayer setLocations:@[@0,@1]];[gradientLayer setStartPoint:CGPointMake(0.5, 0)];[gradientLayer setEndPoint:CGPointMake(0.5, 1)];}else if (kind == GradientLayerKindLeftRight){[gradientLayer setLocations:@[@0,@1]];[gradientLayer setStartPoint:CGPointMake(0, 0.5)];[gradientLayer setEndPoint:CGPointMake(1, 0.5)];}else if (kind == GradientLayerKindLTRB){[gradientLayer setLocations:@[@0,@1]];[gradientLayer setStartPoint:CGPointMake(0, 0)];[gradientLayer setEndPoint:CGPointMake(1, 1)];}else if (kind == GradientLayerKindLBRT){[gradientLayer setLocations:@[@0,@1]];[gradientLayer setStartPoint:CGPointMake(0, 1)];[gradientLayer setEndPoint:CGPointMake(1, 0)];}return gradientLayer;}
使用:viewcontroller的viewdidload中for (int i = 0; i < 4; i++) {NSInteger hang = i%2,lie=i/2;CGFloat w=self.view.frame.size.width/2.0,h=(self.view.frame.size.height-64)/2.0;CGRect frame = CGRectMake(hang*w, lie*h, w, h);[self.view.layer addSublayer:[self ct_getGradientLayerWithFrame:frame StartColor:[self rgb:0 g:0 b:0 a:0.9] endColor:[self rgb:255 g:255 b:255 a:0.1] andKind:i+2000]];}
设置颜色方法:
-(UIColor*)rgb:(NSInteger)r g:(NSInteger)g b:(NSInteger)b a:(CGFloat)alpha{return [UIColor colorWithRed:r%256/256.0 green:g%256/256.0 blue:b%256/256.0 alpha:alpha];}
效果图如图所示:(可以发现图层下的label和按钮都可以显示,并且按钮的点击事件正常响应)

转载于:https://www.cnblogs.com/zhhl/p/5685510.html

IOS 创建渐变图层相关推荐

  1. iOS Quartz2D 渐变图形 CGGradient CGShading

    最近在学习iOS Quartz2D二维图形绘制--->渐变效果 Quartz2D 渐变      Quartz提供了两个不透明数据odgago创建渐变: CGShadingRef 和 CGGra ...

  2. iOS - CALayer 绘图层

    1.CALayer 绘图层 在 iOS 系统中,你能看得见摸得着的东西基本上都是 UIView,比如一个按钮.一个文本标签.一个文本输入框.一个图标等等,这些都是 UIView.其实 UIView 之 ...

  3. 【原】Github系列之三:开源iOS下 渐变颜色的进度条WGradientProgress

    概述 今天我们来实现一个iOS平台上的进度条(progress bar or progress view).这种进度条比APPLE自带的更加漂亮,更加有"B格".它拥有渐变的颜色, ...

  4. 系统学习iOS动画 —— 渐变动画

    这个是希望达成的效果: 先创建需要的控件: class ViewController: UIViewController {let timeLabel = UILabel()override func ...

  5. R语言数据可视化 ggplot2基础2 创建单图层的散点图 创建facet

    R语言数据可视化 ggplot2基础2 创建单图层的散点图 创建facet 单图层散点图 单图层散点图的facet 单图层散点图 这一讲我们从最简单的散点图开始介绍ggplot2应用的基础,首先我们下 ...

  6. java 绘图 渐变_如何在Java 2D中创建渐变绘画?

    要更改图形形状的颜色,我们可以使用setPaint()方法.对于简单的着色,我们可以将颜色对象传递给此方法,例如Color.RED或Color.GREEN. 如果要使用渐变绘画进行绘画,则可以使用Gr ...

  7. cocos2dx中的背景图层CCLayerColor和渐变图层CCLayerGradient

    1.CCLayerColor是专门用来处理背景颜色的图层,它继承自CCLayer,可以用来设置图层的背景颜色,因为CCLayer默认是透明色的,即无颜色的 2.CCLayerGradient是用来显示 ...

  8. 沿环形路径创建渐变画笔

    沿环形路径创建渐变画笔 <Windowx:Class="WpfApp5.MainWindow"xmlns="http://schemas.microsoft.com ...

  9. 《Unity着色器和屏幕特效开发秘笈》—— 1.7 创建渐变纹理来控制漫反射着色...

    本节书摘来自华章出版社<Unity着色器和屏幕特效开发秘笈>一 书中的第1章,第1.7节,作者:(美)Kenny Lammers,更多章节内容可以访问云栖社区"华章计算机&quo ...

  10. ps怎么创建双曲线图层如何添加

    最快速简单一键创建PS双曲线图层,今天我们只用陌鱼社区"一键创建PS双曲线修图磨皮图层动作"即可,再也不用担心自己不会设置和一步步设置浪费时间. 01.打开动作面板,"窗 ...

最新文章

  1. 自动编码(Autoencoder)器异常检测(outlier detection)实战
  2. 为什么yamlp中没有cplex_女孩子们为什么羡慕童话中的公主?她们并没有那么幸福...
  3. Spring之LoadTimeWeaver——一个需求引发的思考---转
  4. 微信小程序勾选协议与提交按钮联动
  5. Lesson3 Shader着色器
  6. interactive_timeout和wait_timeout之间的区别
  7. python绘制散点图的函数_python matplotlib更新函数的散点图
  8. [你必须知道的.NET]第十回:品味类型---值类型与引用类型(下)-应用征途
  9. select 条件字段,数字类型加1
  10. 怎么设置php 中小窗口浮动,CSS_闭合浮动元素超级简单的方法,无意中看到的一个非常不错的 - phpStudy...
  11. Centos下安装Mongodb
  12. Js判断数组中是否有某值
  13. JavaFX界面跳转
  14. U盘图标更改 简单三步教你个性化定制U盘图标!自定义修改你的U盘
  15. JavaScript 组合模式的实现
  16. Hackintosh相关资源站
  17. git merge覆盖当前分支
  18. 电子产品21个权威认证
  19. memcache缓存
  20. 美国新的州隐私和安全法律解释:你的企业准备好了吗?(二)

热门文章

  1. linux虚拟化技术这么玩,Linux上实现虚拟化技术的优势
  2. Java重入函数_重入函数
  3. 给model模型传数组参数
  4. RxJava操作符相关学习资料
  5. Java 连接sql server
  6. 【分布式事务系列二】Spring事务管理器PlatformTransactionManager
  7. C# winfrom gridview全部选择和全部取消
  8. The Robustness of Deep Networks A geometrical perspective论文解读
  9. main函数中argc和argc参数解释
  10. 第三季-第13课-无名管道通讯编程