IOS 创建渐变图层
代码如下 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 创建渐变图层相关推荐
- iOS Quartz2D 渐变图形 CGGradient CGShading
最近在学习iOS Quartz2D二维图形绘制--->渐变效果 Quartz2D 渐变 Quartz提供了两个不透明数据odgago创建渐变: CGShadingRef 和 CGGra ...
- iOS - CALayer 绘图层
1.CALayer 绘图层 在 iOS 系统中,你能看得见摸得着的东西基本上都是 UIView,比如一个按钮.一个文本标签.一个文本输入框.一个图标等等,这些都是 UIView.其实 UIView 之 ...
- 【原】Github系列之三:开源iOS下 渐变颜色的进度条WGradientProgress
概述 今天我们来实现一个iOS平台上的进度条(progress bar or progress view).这种进度条比APPLE自带的更加漂亮,更加有"B格".它拥有渐变的颜色, ...
- 系统学习iOS动画 —— 渐变动画
这个是希望达成的效果: 先创建需要的控件: class ViewController: UIViewController {let timeLabel = UILabel()override func ...
- R语言数据可视化 ggplot2基础2 创建单图层的散点图 创建facet
R语言数据可视化 ggplot2基础2 创建单图层的散点图 创建facet 单图层散点图 单图层散点图的facet 单图层散点图 这一讲我们从最简单的散点图开始介绍ggplot2应用的基础,首先我们下 ...
- java 绘图 渐变_如何在Java 2D中创建渐变绘画?
要更改图形形状的颜色,我们可以使用setPaint()方法.对于简单的着色,我们可以将颜色对象传递给此方法,例如Color.RED或Color.GREEN. 如果要使用渐变绘画进行绘画,则可以使用Gr ...
- cocos2dx中的背景图层CCLayerColor和渐变图层CCLayerGradient
1.CCLayerColor是专门用来处理背景颜色的图层,它继承自CCLayer,可以用来设置图层的背景颜色,因为CCLayer默认是透明色的,即无颜色的 2.CCLayerGradient是用来显示 ...
- 沿环形路径创建渐变画笔
沿环形路径创建渐变画笔 <Windowx:Class="WpfApp5.MainWindow"xmlns="http://schemas.microsoft.com ...
- 《Unity着色器和屏幕特效开发秘笈》—— 1.7 创建渐变纹理来控制漫反射着色...
本节书摘来自华章出版社<Unity着色器和屏幕特效开发秘笈>一 书中的第1章,第1.7节,作者:(美)Kenny Lammers,更多章节内容可以访问云栖社区"华章计算机&quo ...
- ps怎么创建双曲线图层如何添加
最快速简单一键创建PS双曲线图层,今天我们只用陌鱼社区"一键创建PS双曲线修图磨皮图层动作"即可,再也不用担心自己不会设置和一步步设置浪费时间. 01.打开动作面板,"窗 ...
最新文章
- 自动编码(Autoencoder)器异常检测(outlier detection)实战
- 为什么yamlp中没有cplex_女孩子们为什么羡慕童话中的公主?她们并没有那么幸福...
- Spring之LoadTimeWeaver——一个需求引发的思考---转
- 微信小程序勾选协议与提交按钮联动
- Lesson3 Shader着色器
- interactive_timeout和wait_timeout之间的区别
- python绘制散点图的函数_python matplotlib更新函数的散点图
- [你必须知道的.NET]第十回:品味类型---值类型与引用类型(下)-应用征途
- select 条件字段,数字类型加1
- 怎么设置php 中小窗口浮动,CSS_闭合浮动元素超级简单的方法,无意中看到的一个非常不错的 - phpStudy...
- Centos下安装Mongodb
- Js判断数组中是否有某值
- JavaFX界面跳转
- U盘图标更改 简单三步教你个性化定制U盘图标!自定义修改你的U盘
- JavaScript 组合模式的实现
- Hackintosh相关资源站
- git merge覆盖当前分支
- 电子产品21个权威认证
- memcache缓存
- 美国新的州隐私和安全法律解释:你的企业准备好了吗?(二)