渐变 CGGradient
来源:互联网 发布:java细粒度数据级权限 编辑:程序博客网 时间:2024/05/21 20:23
颜色渐变指从一种颜色向另一种颜色的过渡,颜色渐变分为两种:线性渐变和径向渐变
Quartz提供了CGGradient类和CGShading类以支持颜色渐变。
CGGradientRef myGradient; CGColorSpaceRef myColorspace; size_t num_locations = 2; CGFloat locations[2] = {0.0, 1.0}; CGFloat components[8] = {1.0, 0.5, 0.4, 1.0, //开始颜色(RGB) 0.8, 0.8, 0.3, 1.0}; //终止颜色(RGB) myColorspace = CGColorSpaceCreateDeviceRGB(); /* *第一个参数:颜色空间 *第二个参数:CGFloat数组,指定渐变的开始颜色,终止颜色,以及过度色(如果有的话) *第三个参数:指定每个颜色在渐变色中的位置,值介于0.0-1.0之间 * 0.0表示最开始的位置,1.0表示渐变结束的位置 *第四个参数:渐变中使用的颜色数 */ myGradient = CGGradientCreateWithColorComponents(myColorspace, components, locations, num_locations); CGPoint myStartPoint, myEndPoint; myStartPoint.x = 0.0; myStartPoint.y = 0.0; myEndPoint.x = _imgView.frame.size.width; myEndPoint.y = _imgView.frame.size.height; UIGraphicsBeginImageContext(_imgView.frame.size); CGContextRef ctx = UIGraphicsGetCurrentContext(); CGContextDrawLinearGradient(ctx, myGradient, myStartPoint, myEndPoint, 0);//绘制颜色渐变 UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); _imgView.image = image; UIGraphicsEndImageContext();
2.径向渐变
CGContextRef context = UIGraphicsGetCurrentContext(); UIGraphicsPushContext(context); size_t gradLocationNum = 2; CGFloat gradLocation[2] = {0.0f, 1.0f}; CGFloat gradColors[8] = {0.0f,0.0f,0.0f,0.0f,0.0f,0.0f,0.0f,0.9f}; CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); CGGradientRef gradient = CGGradientCreateWithColorComponents(colorSpace, gradColors, gradLocation, gradLocationNum); //渐变的中心 CGPoint gradCenter = CGPointMake(self.bounds.size.width/2.0, self.bounds.size.height/2.0); //渐变的半径 float gradRadius = MIN(CGRectGetWidth(self.bounds), CGRectGetHeight(self.bounds)); //Gradient Draw CGContextDrawRadialGradient(context, gradient, gradCenter, 0, gradCenter, gradRadius, kCGGradientDrawsAfterEndLocation); CGGradientRelease(gradient); UIGraphicsPopContext();
0 0
- 渐变 CGGradient
- iOS Quartz2D 渐变图形 CGGradient CGShading
- CGGradient例子
- ios 渐进色绘制 CGGradient(一)
- 渐变
- 渐变
- 渐变
- 渐变
- 渐变
- 渐变
- 渐变
- 渐变
- 渐变
- 渐变
- 渐变
- 渐变
- 渐变:线性渐变、径向渐变
- css3渐变SVG渐变
- 三大框架的工作原理(Strut1,Strut2,Hibernate,Spring)——初学篇
- 80端口被system进程占用
- 基于NPAPI插件开发
- java Web 面试题
- 使用DownloadManager 自动更新apk
- 渐变 CGGradient
- Jquery——关于jquery.fn
- JAVA虚拟机加载类的方式解析
- 承接各类gis项目、webgis兼职,gis毕业设计代做、gis毕业论文代写
- param隐含对象
- c++操作mysql - 查询
- 第二周作业03 -- 随机生成一个n位的二进制数(质数)对应的长质数
- 慎用位图索引
- android 广播机制