实现线性渐变 径向渐变
自己新建的view中有一个drawRect:(cgrect)rect方法
在这个方法里 可以通过画图 将内容显示在画板上(即最下边的view)
渐变的方式分两种 :1种是线性渐变 1种是径向渐变
首先先看 线性渐变
1 设置图像的上下文
2 获得颜色空间 说明他是什么类型的颜色
3 设置开始颜色 结束颜色 并且将他们换成Cg颜色
4 设置渐变 渐变的4个参数 没有的需要进行创建 2 3
5 绘制线性渐变 绘制径向渐变
6清理creat创建的对象 用cg
// Drawing code
//获得当前图形器的当前的上下文
CGContextRef context = UIGraphicsGetCurrentContext();
//创建渐变的颜色空间类型是RGB颜色
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
//设置颜色的开始 颜色的结束
UIColor *beginColor = [UIColor redColor];
//将颜色转换为cgColor//CGFloat是浮点型的基本数据类型
CGFloat *beginC =CGColorGetComponents([beginColor CGColor]);
UIColor *endColor = [UIColor yellowColor];
CGFloat *endC = CGColorGetComponents([endColor CGColor]);
//将两个颜色的元素加入到一个Cgfloat数组中
CGFloat component[8] = {beginC[0],beginC[1],beginC[2],beginC[3],endC[0],endC[1],endC[2],endC[3]};
//设定颜色的区间 区间范围是0 1 如果区间没有你要的颜色 就会执行靠近区间的颜色
CGFloat location[2] ={0,1};
//设置渐变
//获得当前图形器的当前的上下文
CGContextRef context = UIGraphicsGetCurrentContext();
//创建渐变的颜色空间类型是RGB颜色
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
//设置颜色的开始 颜色的结束
UIColor *beginColor = [UIColor redColor];
//将颜色转换为cgColor//CGFloat是浮点型的基本数据类型
CGFloat *beginC =CGColorGetComponents([beginColor CGColor]);
UIColor *endColor = [UIColor yellowColor];
CGFloat *endC = CGColorGetComponents([endColor CGColor]);
//将两个颜色的元素加入到一个Cgfloat数组中
CGFloat component[8] = {beginC[0],beginC[1],beginC[2],beginC[3],endC[0],endC[1],endC[2],endC[3]};
//设定颜色的区间 区间范围是0 1 如果区间没有你要的颜色 就会执行靠近区间的颜色
CGFloat location[2] ={0,1};
//设置渐变
CGGradientRef gradient = CGGradientCreateWithColorComponents(colorSpace, component, location, 2);
//绘制直线渐变
CGContextDrawLinearGradient(context, gradient, CGPointMake(100, 100), CGPointMake(200, 200), 0);
//绘制径向渐变
CGContextDrawRadialGradient(context, gradient, CGPointMake(300, 300), 50, CGPointMake(300, 300), 60, kCGGradientDrawsBeforeStartLocation);
//清理
CGColorSpaceRelease(colorSpace);
CGColorSpaceRelease(colorSpace);
CGGradientRelease(gradient);