您现在的位置是:首页 > 文章详情

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

日期:2017-06-24点击:307

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(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); }
复制代码

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

      

 

程序猿神奇的手,每时每刻,这双手都在改变着世界的交互方式!
分类:  iOS高级

本文转自当天真遇到现实博客园博客,原文链接:本文转自当天真遇到现实博客园博客,原文链接:http://www.cnblogs.com/XYQ-208910/p/4868469.html,如需转载请自行联系原作者,如需转载请自行联系原作者
原文链接:https://yq.aliyun.com/articles/366341
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章