实现线性渐变   径向渐变
 
自己新建的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);
 
 
 
 
 
 

绘图quartz之渐变的更多相关文章

  1. iOS 2D绘图 (Quartz 2D) 概述

    本篇博客原文地址:http://blog.csdn.net/hello_hwc?viewmode=list 由于自己的项目需要,从网络上下载了许多关于绘制图形的demo,只是用在自己的项目中,很多地方 ...

  2. iOS:quartz2D绘图(绘制渐变图形)

    quartzD可以用来绘制渐变图形,即图形向外或向内发散,会变得越来越模糊. 渐变分为线性渐变和径向渐变,所谓线性渐变,就是图形以线的方式发散,发散后一般呈现出矩形的样子:而径向渐变,就是以半径的大小 ...

  3. 绘图quartz之加水印

      实现在图片上加一个水印  并存在document的路径下  同时在手机相册中也存一份 //首先开启imageContext找到图片     UIGraphicsBeginImageContext( ...

  4. 绘图quartz之阴影

          //设置矩形的阴影  并在后边加一个圆 不带阴影     步骤:     CGContextRef context = UIGraphicsGetCurrentContext();     ...

  5. iOS 2D绘图 (Quartz2D)之阴影和渐变(shadow,Gradient)

    原博地址:http://blog.csdn.net/hello_hwc/article/details/49507881 Shadow Shadow(阴影) 的目的是为了使UI更有立体感,如图 sha ...

  6. H5新特性-canvas绘图--渐变对象路径(最复杂)--图片--变形操作

    今天的目标 3.1:canvas绘图--(重点掌握:渐变对象.路径.图片.变形) 3.2:canvas绘图--渐变对象 线性渐变: linearGradient 径向渐变: var g = ctx.c ...

  7. HTML5画:线、圆、矩形、渐变

    示例一:矩形 <!DOCTYPE html><head> <meta charset=utf-8> <title>HTML5画线.圆.矩形</ti ...

  8. iOS:quartz2D绘图

    Quartz-2D:绘图 一.介绍: •Quartz 2D是一个二维图形绘制引擎,支持iOS环境和Mac OS X环境   •Quartz 2D API可以实现许多功能,如基于路径的绘图.透明度.阴影 ...

  9. highcharts 系统梳理笔记

    前言 highcharts最早接触它是在4年前,后来项目中很少用到图表这些东西,就算有也是用echart.他们思路都一样自己去官网上看api即可,构造数据填充节点,没有什么难点,这次是做完手上的工作然 ...

随机推荐

  1. bzoj1853 bzoj2393

    两题是类似的,这里说一下bzoj1853 首先我们求出所有的幸运号码,注意如果存在x是y的倍数则x不算在内,避免之后重复计算 下面我们就要统计幸运号码的倍数了,这显然是要用到容斥原理的 但是幸运号码很 ...

  2. 深入浅出Node.js (附录C) - Node编码规范

    C.1 根源 C.2 编码规范 C.2.1 空格与格式 C.2.2 命名规范 C.2.3 比较操作 C.2.4 字面量 C.2.5 作用域 C.2.6 数组与对象 C.2.7 异步 C.2.8 类与模 ...

  3. Google Map API 学习四

  4. (转载)PHP json_encode() 函数介绍

    (转载) 在 php 中使用 json_encode() 内置函数(php > 5.2)可以使用得 php 中数据可以与其它语言很好的传递并且使用它. 这个函数的功能是将数值转换成json数据存 ...

  5. CXF Service Interceptor请求,响应报文之控制台输出

    一:定义接口 @WebService(targetNamespace = "http://www.unionpay.com/client/appprovider", name = ...

  6. SIP协议错误代码大全

    100 Trying 说明caller正在呼叫,但还没联系上callee. 180 Ringing 说明callee已经被联系上,callee的铃正在响.收到这个信息后,等待200 OK 181 Ca ...

  7. 深入理解jvm之内存区域与内存溢出

    文章目录 1. Java内存区域与内存溢出异常 1.1. 运行时数据区域 1.1.1. 程序计数器 1.1.2. java虚拟机栈 1.1.3. 本地方法栈 1.1.4. Java堆(Java Hea ...

  8. [NOIP2015pj题解]From某因为时间快了那么一点点超过下一位的蒟蒻(其实是纯代码).

    第一题,很水,直接上代码 #include <iostream> #include <fstream> #include <cstdlib> /* run this ...

  9. 使用BSD socket编写Windows版的网络程序

    我们知道BSD Socket是标准的套接字规范,那么怎么在windows使用他们呢? 我们首先要引用<winsock2.h>和ws2_32.lib 然后,执行WSAStartup #ifd ...

  10. JS代码获取当前日期时支持IE,不兼容FF和chrome,解决这个问题,我们需要把获取时间的getYear()函数换成getFullYear()

    以前在页面中获得当前时间的方法如下: function SelectTodayClient() { var d = new Date(); var taday = d.getYear() + &quo ...