iOS 实现背景颜色渐变的方式
iOS里面的背景颜色实现渐变的方式有两种,第一种就是给一个渐变的图片做背景,当然这样有很大的局限性,比如我现在就需要根据项目需求要动态的改变渐变背景色。
这样首先想到quartz 2D 这里的知识进行绘图,我根据需要在自定义视图里面的drawRect方法进行绘制。
- (void)drawRect:(CGRect)rect {/*** 1.通过CAGradientLayer 设置渐变的背景。*/CAGradientLayer *layer = [CAGradientLayer new];//colors存放渐变的颜色的数组layer.colors=@[(__bridge id)[UIColor greenColor].CGColor,(__bridge id)[UIColor whiteColor].CGColor];/*** 起点和终点表示的坐标系位置,(0,0)表示左上角,(1,1)表示右下角*/layer.startPoint = CGPointMake(0.5, 0);layer.endPoint = CGPointMake(0.5, 1);layer.frame = self.bounds;[self.layer addSublayer:layer];/*** 方法2.CGGradientRef*/CGContextRef ctx = UIGraphicsGetCurrentContext();CGColorSpaceRef colorSpace=CGColorSpaceCreateDeviceRGB();/*指定渐变色space:颜色空间components:颜色数组,注意由于指定了RGB颜色空间,那么四个数组元素表示一个颜色(red、green、blue、alpha),如果有三个颜色则这个数组有4*3个元素locations:颜色所在位置(范围0~1),这个数组的个数不小于components中存放颜色的个数count:渐变个数,等于locations的个数*/CGFloat compoents[12]={0,0,0,1,0.8,0.1,0.5,1.0,1.0,1.0,1.0,1.0};//设置渐变的位置CGFloat locations[3]={0,0.3,1.0};//创建梯度上下文CGGradientRef gradient= CGGradientCreateWithColorComponents(colorSpace, compoents, locations, 3);/*绘制线性渐变context:图形上下文gradient:渐变色startPoint:起始位置endPoint:终止位置options:绘制方式,kCGGradientDrawsBeforeStartLocation 开始位置之前就进行绘制,到结束位置之后不再绘制,kCGGradientDrawsAfterEndLocation开始位置之前不进行绘制,到结束点之后继续填充startPoint endPoint 不同与上一种方法,指的是真正的坐标*/CGContextDrawLinearGradient(ctx, gradient, CGPointMake(self.frame.size.width/2, 0), CGPointMake(self.frame.size.width/2,self.frame.size.height), kCGGradientDrawsAfterEndLocation);//释放颜色空间CGColorSpaceRelease(colorSpace);
}
方法1效果:
方法2的效果:
iOS 实现背景颜色渐变的方式相关推荐
- 背景颜色渐变的几种方式
* background : linear-gradient(方向 , 颜色 位置) + 方向: [to left][45deg] + 颜色: color 10% // 可以为多组 - 径向渐变 [多 ...
- android设置背景颜色渐变,Android背景渐变色(shape,gradient)
Android设置背景色可以通过在res/drawable里定义一个xml,如下: android:startColor="#FFF" android:endColor=" ...
- php如何在添加div的背景颜色_css3颜色渐变:css3如何实现背景颜色渐变?
为了开发网页的美观,css3背景颜色渐变是经常会用到的,那么,css3背景颜色渐变如何设置呢?本篇文章我们就来介绍关于css颜色渐变背景的设置方法. 我们要知道的是css3渐变有两种类型:css3线性 ...
- HTML渐变背景不重复,如何停止重复自身的背景颜色渐变? (css)
我真的不知道如何解决背景渐变不会重复的问题.我做了很多研究,但大部分都没有帮助.我真的需要它,因为这是为了我的论文,所以我非常感谢他的帮助.预先感谢.如何停止重复自身的背景颜色渐变? (css) @i ...
- php背景时间渐变,CSS3怎么实现背景颜色渐变?(图文+视频)
本篇文章主要给大家介绍css3背景渐变的实现方法总结. 我们在前端开发过程中,为了丰富网站样式内容,那么背景色渐变就有很不错的视觉效果.所谓CSS3 渐变(gradients)也就是可以让你在两个或多 ...
- 背景颜色渐变 background
背景颜色渐变 background background: -webkit-linear-gradient(起始方向,颜色1 ,颜色2,-) background: -webkit-linear-gr ...
- CSS -- 实现DIV层背景颜色渐变 (兼容IE 火狐 谷歌浏览器)
CSS -- 实现DIV层背景颜色渐变 (兼容IE 火狐 谷歌浏览器) FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType= ...
- 背景颜色渐变 css3 ---- 转自:至尊宝的BLOG http://blog.sina.com.cn/zzbnie
背景颜色渐变 css3 一. Webkit浏览器 (1) 第一种写法: background:-webkit-gradient(linear ,10% 10%,100% 100%, color-sto ...
- C#如何实现窗体背景颜色渐变?
如下图,如何才能实现窗体颜色渐变? 实现窗体颜色渐变需要用到Color结构的FormArgb方法,该方法可以重载. 实现的主要代码如下 using System; using System.Colle ...
最新文章
- python 中文转unicode编码_Python 解码 Unicode 转义字符串
- ANGULAR自带指令有哪些?
- C++标准库与STL简介
- 关于批量插入数据之我见(100万级别的数据,mysql) (转)
- 机器人学习--Turtelbot3学习-- Burger与waffle等版本的切换
- VTK:模型用法实战
- 【Solr】 solr对拼音搜索和拼音首字母搜索的支持
- 学python最重要的是_Python学习,要选哪个版本?
- 1.6编程基础之一维数组_01与指定数字相同的数的个数
- (二)马尔可夫决策过程
- Opencv--CvMat声明和使用
- pythondjango教程_Python 中Django安装和使用教程详解
- Epic:把虚幻引擎推向所有游戏平台
- 【Oracle】RMAN备份
- 电脑系统怎么卸载驱动程序
- CSC7156 SOP-7
- 十二生肖的相合、相冲、相刑、相害
- TS 版 Promise 详解
- 使用frps建立内网穿透从而实现外界连接内网电脑的全教程
- Python 机器人学习手册:1~5