quartz2D既可以绘制原始图形,也可以给原始图形绘制阴影。

绘制阴影时,需要的一些参数:上下文、阴影偏移量、阴影模糊系数

注意:在drawRect:方法中同时调用绘制同一个图形时,在对绘制的图形做绘制阴影处理前,需要先对上下文进行保存,绘制阴影成功后,还要对上下文进行复位,还原为最原始的上下文。目的是为了不影响后面的绘图操作。

举例的阴影绘制实例如下:

1、自定义一个视图类DemoView,并将控制器的视图关联该自定义类,同时在该定义类中重写- (void)drawRect:(CGRect)rect,将绘制无阴影图形和绘制阴影图形的调用方法写在里面。

    

//绘制无阴影图形和绘制阴影图形的调用方法

- (void)drawRect:(CGRect)rect
{
//画图形
//1.获取绘图的上下文
CGContextRef context = UIGraphicsGetCurrentContext(); //画带阴影的矩形
[self drawRectWithShadow:context]; //画不带阴影的矩形
[self drawRectWithNoShadow:context]; }

2、具体的绘制代码如下:

// 绘制无阴影的矩形

#pragma mark -画不带阴影的矩形

-(void)drawRectWithNoShadow:(CGContextRef)context
{
//3.添加矩形
CGContextAddRect(context, CGRectMake(, , , )); //4.设置绘图属性
[[UIColor redColor]setFill]; //填充色
[[UIColor blackColor]setStroke]; //描边 //5.画矩形
CGContextDrawPath(context, kCGPathEOFillStroke);
}

绘制的无阴影矩形截图为:

// 绘制带阴影的矩形

#pragma mark -画带阴影的矩形(阴影分为:无颜色(默认的)、有颜色的(设置颜色))

-(void)drawRectWithShadow:(CGContextRef)context
{
//保存旧的绘图上下文
CGContextSaveGState(context); //2.设置阴影(参数:上下文、阴影偏移量、阴影模糊系数)
//不带颜色的阴影
//CGContextSetShadow(context, CGSizeMake(10, 10), 10.0); //带颜色的阴影
CGContextSetShadowWithColor(context, CGSizeMake(, ), 10.0,[[UIColor purpleColor]CGColor]); //3.添加矩形
CGContextAddRect(context, CGRectMake(, , , )); //4.设置绘图属性
[[UIColor redColor]setFill]; //填充色
[[UIColor blackColor]setStroke]; //描边 //5.画矩形
CGContextDrawPath(context, kCGPathEOFillStroke); //恢复旧的绘图上下文
CGContextRestoreGState(context);
}

绘制的无颜色的阴影图形和有颜色的阴影图形截图为:

      

iOS:quartz2D绘图(给图形绘制阴影)的更多相关文章

  1. HTML5 给图形绘制阴影(绘制五角星示例)

    几个属性 shadowOffsetX:阴影的横向位移量. shadowOffsetY:阴影的纵向位移量. shadowColor:阴影的颜色. shadowBlur:阴影的模糊范围. 属性说明 sha ...

  2. Canvas 给图形绘制阴影

    /** * 图形绘制阴影 */ function initDemo6() { var canvas = document.getElementById("demo6"); if ( ...

  3. Matlab绘图基础——图形绘制的插值  以及 图像大小的重采样

    使用说明:图形绘制时的插值 interp1   %1-D data interpolation interpft  %使用fft算法插值     %将原数据x转换到频率域,再逆转换回来更密集的数据采样 ...

  4. iOS:quartz2D绘图(显示绘制在PDF上的图片)

    quart2D既可以用来绘制图像到pdf上,也可以从pdf上读取图像并显示出来.在使用这种方式之前,还有一种方式可以用来读取显示pdf上的图像,即使用UIWebView网页视图控件- (void)lo ...

  5. iOS:quartz2D绘图 (动画)

    quartz2D可以用来绘制自己需要的图形,它们绘制出来的是一个静态的图形,那么如何绘制一个动态的图形呢?动态的图形就是动画,所谓动画,其实就是很多张图片在短时间内不停的切换所产生的一种视觉效果.qu ...

  6. Matlab绘图基础——图形绘制的插值

    interp1   %1-D data interpolation interpft  %使用fft算法插值     %将原数据x转换到频率域,再逆转换回来更密集的数据采样点 spline    %一 ...

  7. [html] 学习笔记-Canvas图形绘制处理

    使用Canvas API 可以将一个图形重叠绘制在另外一个图形上,也可以给图形添加阴影效果. 1.Canvas 图形组合 通过 globalCompositeOperation = 属性 来指定重叠效 ...

  8. iOS:quartz2D绘图(处理图像,绘制图像并添加水印)

    绘制图像既可以重写drawRect:方法并在该方法中绘制,也可以不用重写该方法,它有封装好的函数获取自己的图像绘制上下文,即UIGraphicsBeginImageContext(CGSize siz ...

  9. iOS学习——Quartz2D学习之UIKit绘制

    iOS学习——Quartz2D学习之UIKit绘制 1.总述 在IOS中绘图技术主要包括:UIKit.Quartz 2D.Core Animation和OpenGL ES.其中Core Animati ...

随机推荐

  1. HIbernate学习笔记5 之 查询

    一.HQL查询 * 按条件查询,条件中写的是属性名,之后在query对象为添加赋值,如: String hql = " from User where uid=?"; Sessio ...

  2. JS将日期转换为yyyy-MM-dd HH:mm:ss

    //格式化后日期为:yyyy-MM-dd HH:mm:ss function FormatAllDate(sDate) { var date = new Date(sDate); var sepera ...

  3. DataSet、DataTable、DataRow的数据复制方法

    DataSet 对象是支持 ADO.NET的断开式.分布式数据方案的核心对象 ,用途非常广泛.我们很多时候需要使用其中的数据,比如取得一个DataTable的数据或者复制另一个DataTabe中的数据 ...

  4. JAVA用POI读取和创建2003和2007版本Excel

    1.添加maven依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-o ...

  5. RHEL7删除yum命令后如何恢复

    楼主也是不小心删除了rhel7上的yum命令,后来通过安装centos7的yum命令解决 1.首先下载yum相关的rpm包 http://mirrors.163.com/centos/7/os/x86 ...

  6. npoi的用法,动态的判断单元格的大小,设置列的宽度

    public MemoryStream GridToExcelByNPOI(DataTable dt, string strExcelFileName) { HSSFWorkbook wk = new ...

  7. 安装 gcc 编译器

    1.安装编译工具 gcc.gcc-c++.make 注意解决依赖关系,推荐使用 yum 安装,若不能联网可使用安装光 盘做为 yum 源 1)编辑 yum 配置文件: Mount /dev/cdrom ...

  8. vmware漏洞之二——简评:实战VMware虚拟机逃逸漏洞

    下文取自360,是vmware exploit作者自己撰写的.本文从实验角度对作者的文章进行解释,有助于学习和理解.文章虚线内或红色括号内为本人撰写. ------------------------ ...

  9. 深度学习应用系列(一)| 在Ubuntu 18.04安装tensorflow 1.10 GPU版本

    tensorflow目前已经升级至r1.10版本.在之前的深度学习中,我是在MAC的虚拟机上跑CPU版本的tensorflow程序,当数据量变大后,tensorflow跑的非常慢,在内存不足情况下,又 ...

  10. uva 10910(子集和问题)

    Marks Distribution Time limit: 3.000 seconds In an examination one student appeared in N subjects an ...