iOS:quartz2D绘图(给图形绘制阴影)

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

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

注意:在对绘制的图形做了绘制阴影处理前,需要先对上下文进行保存,绘制阴影成功后,还要对上下文进行复位。目的是为了不影响后面的绘图操作。

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

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(100, 300, 100, 100));

    //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, 10), 10.0,[[UIColor purpleColor]CGColor]);

    //3.添加矩形
    CGContextAddRect(context, CGRectMake(100, 100, 100, 100));

    //4.设置绘图属性
    [[UIColor redColor]setFill];      //填充色
    [[UIColor blackColor]setStroke];  //描边

    //5.画矩形
    CGContextDrawPath(context, kCGPathEOFillStroke);

    //恢复旧的绘图上下文
    CGContextRestoreGState(context);
}

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

      

时间: 2024-10-05 05:26:02

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

Android官方开发文档Training系列课程中文版:OpenGL绘图之图形绘制

原文地址:http://android.xsoftlab.net/training/graphics/opengl/draw.html 如果你还不清楚如何定义图形及坐标系统,请移步:Android官方开发文档Training系列课程中文版:OpenGL绘图之图形定义. 在定义了图形之后,你接下来需要做的就是将它绘制到屏幕上.不过使用OpenGL ES 2.0 API来绘制这个图形所需要的代码量可能要比想象中的多一些,这是因为API为图形渲染管道提供了大量的控制细节. 这节课会展示如何绘制上节课所

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

quart2D既可以用来绘制图像到pdf上,也可以从pdf上读取图像并显示出来.在使用这种方式之前,还有一种方式可以用来读取显示pdf上的图像,即使用UIWebView网页视图控件- (void)loadRequest:(NSURLRequest *)request方法加载绘制到视图上显示,这里我将会将这两种方式都演示一遍. 具体的实例如下: 方式一:采用网页视图控件UIWebView的方式显示在pdf上的绘图 1.在故事板视图中拖入两个子控件,分别是网页视图控件webView和显示按钮   2

iOS Quartz2D画基本图形

1.线 // 1.获得图形上下文 CGContextRef ctx = UIGraphicsGetCurrentContext(); // 设置线宽 CGContextSetLineWidth(ctx, 5); // 设置颜色 CGContextSetRGBStrokeColor(ctx, 0, 0, 1, 1); // 设置头尾部样式 CGContextSetLineCap(ctx, kCGLineCapRound); // 设置转折点的样式 CGContextSetLineJoin(ctx,

iOS Quartz2D 渐变图形 CGGradient CGShading

最近在学习iOS Quartz2D二维图形绘制--->渐变效果 Quartz2D 渐变 Quartz提供了两个不透明数据odgago创建渐变: CGShadingRef 和 CGGradientRef 可以使用任何一种来创建轴向(axial)或径向(radial)渐变.一个渐变是从一个颜色到另一个颜色的填充 一个轴向渐变(也成为线性渐变) 不说废话直接上干货, 代码和注释还算全,不懂的自行百度吧 <span style="font-size:18px;">// Qua

Canvas4——图形绘制处理

1.图形组合 globalCompositeOperation = type 属性 **CanvasRenderingContext2D**.globalCompositeOperation属性是 Canvas 2D API 用来绘制新的图形时,设置图形间组合操作的. 每种类型都是一种表示组合或合成方式的字符串. 查看type的各种类型: (1)在 Canvas Tutorial 中查看 Compositing 章节. (2)type介绍--查看下面页面的内容:英文原文:中文翻译. 实例代码:

绘制阴影引发的 iOS 绘图性能问题总结

转自:http://blog.devdlh.com/blog/2013/03/18/performance-problerm-caused-by-shadowpath/ 绘制阴影引发的 iOS 绘图性能问题总结 MAR 18TH, 2013 | COMMENTS 在 iOS 开发中,通过设置 layer 的 shadowColor.shadowOpacity.shadowOffset.shadowRadius 几个属性可以很方便的为 UIView 添加阴影效果.但是前段时间碰到一个问题,在添加了

Quartz2D--iOS下的图形绘制

一.基本介绍 Quartz 2D是一个二维绘图引擎,Quartz 2D的API是C语言,来自CoreGraphics框架,没有面向对象的思想. 1.作用:绘制图形:线条.三角形.矩形.圆.弧等 绘制文字 绘制.生成图片(图形) 读取.生成PDF 截图.裁剪图片 自定义UI控件 2.图形上下文(Graphics Context):是一个CGContextRef类型的数据 图形上下文的作用:1.保存绘图信息.绘图状态 2.决定绘制的输出目标(绘制到什么地方,输出目标可以是PDF文件.Bitmap或者

iOS开发UI篇—Quartz2D使用(图形上下文栈)

iOS开发UI篇-Quartz2D使用(图形上下文栈) 一.qurza2d是怎么将绘图信息和绘图的属性绘制到图形上下文中去的? 说明: 新建一个项目,自定义一个view类和storyboard关联后,重写该类中的drowrect方法. 画线的三个步骤: (1)获取上下文 (2)绘图 (3)渲染 要求:画两条单独的线 代码和效果图: 1 - (void)drawRect:(CGRect)rect 2 { 3 //获取上下文 4 CGContextRef ctx=UIGraphicsGetCurre

iOS开发 - Quartz2D绘图

Quartz 2D简介 是一个二维绘图引擎,同时支持iOS和Mac系统 Quartz 2D能完成的工作 绘制图形 : 线条\三角形\矩形\圆\弧等 绘制文字 绘制\生成图片(图像) 读取\生成PDF 截图\裁剪图片 自定义UI控件 - - drawRect:方法的使用 常见图形的绘制:线条.多边形.圆 绘图状态的设置:文字颜色.线宽等 图形上下文状态的保存与恢复 图形上下文栈 为了便于搭建美观的UI界面,iOS提供了UIKit框架,里面有各种各样的UI控件 UILabel:显示文字 UIImag