ios 渐进色绘制 CGGradient(一)

开始要做实验室的项目了,所以得好好学下ios的东西,今天重新看了渐进色的绘制。

ios中绘制渐进色有两种方案,一种是用CGCradient对象,另一种是CGShading,对于后面这种,可以通过自己写回调函数来设定渐进色的变化规则,因此更加具有主观能动性,当然,用CGGradient则是系统自己会帮你算,相对简单些,这里只介绍CGGradient,因为不会用CGCradient……

本文介绍轴向渐进色绘制

绘图的步骤如下:

1、创建一个CGGradient对象,这个对象里存放的是关于绘制渐进色的一些信息,包括颜色以及位置等等,创建一个CGGradient对象需要的东西有:

      一个颜色空间,通过 CGColorSpaceRef myColorspace CGColorSpaceCreateDeviceRGB(); 得到

      颜色数组,位置数组

      这两个数组的元素应该对应,不过需要的注意的是,一个颜色其实是有四个浮点数组成的,分别表示rgb值和透明度,范围均为0-1

      所以颜色数组可以这么定义:

       CGFloat components[] = {

        1,1,1,1,

        0,0,0,1,

       1,1,1,1};

       对应的位置数组可以这么定义

       CGFloat locations[] = {0.0,0.5,1.0};

       关于位置数组,它表示的是一个线段上的百分比,这条线段就是我们画渐进色的轴(由两个端点组成)

       上面这个例子的意思是,在起点处的颜色值为(1,1,1,1)(白色),中点处的位置为(0,0,0,1)(黑色),终点的颜色为(1,1,1,1)(白色),所以整个渐进色的过程就是由白变到黑再变回白色,当然你可以只有两种颜色,或者更多颜色,只要颜色数和位置数相等就好了,可以随便你这么画……按照上面的画法结果如下:



附上代码:

    CGColorSpaceRef myColorspace = CGColorSpaceCreateDeviceRGB(); //得到颜色空间
    CGGradientRef myGradient;
    int location_num = 3;
    CGFloat components[] = {1,1,1,1,
        0,0,0,1,
    1,1,1,1};
    CGFloat locations[] = {0.0,0.5,1.0};
    myGradient = CGGradientCreateWithColorComponents(myColorspace, components, locations, location_num);
    CGContextDrawLinearGradient(context, myGradient, CGPointMake(0, 0),CGPointMake(100, 100), 0); //两个点,前一个表示起点,第二个表示终点


    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值