首页
学习
活动
专区
圈层
工具
发布

绘图quartz之渐变

实现线性渐变   径向渐变

自己新建的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};     //设置渐变

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);

    CGGradientRelease(gradient);

下一篇
举报
领券