博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在自己实现的ios画图程序中如何实现橡皮擦功能
阅读量:7077 次
发布时间:2019-06-28

本文共 709 字,大约阅读时间需要 2 分钟。

通过cgcontextref来画图的时候,实现橡皮擦功能的方式有两种:

1. 将画笔设置为背景色来实现橡皮擦功能。
这种情况适用于当前设置context的blend mode为normal的时候,即
CGContextSetBlendMode(context, kCGBlendModeNormal);
此时设置背景色的代码如下:
UIGraphicsBeginImageContext ( drawBgView . bounds . size );
// get the image
[ drawBgView . layer   renderInContext: UIGraphicsGetCurrentContext ()];
UIImage   * image   =   UIGraphicsGetImageFromCurrentImageContext ();
UIGraphicsEndImageContext ();
self . drawView . currentColor   =   [ UIColor   colorWithPatternImage: image ];
 
 
2.通过clearColor来实现橡皮擦功能
个人觉得第二种方式更加简单方面且适用性更加广泛。
第一种情况如果背景色可以变化的情况下,则会有问题。第二种方式因此更具有通用性。
CGContextSetBlendMode(context, kCGBlendModeCopy);
此时再设置画笔颜色为clearColor就可以清除画笔
 
WARNING:设置blend mode为copy的情况下,如果画笔同时支持透明度的调整,则会出现一些小问题,需要注意。

转载地址:http://kndml.baihongyu.com/

你可能感兴趣的文章
吃下这枚安利!翠贝卡电影节上这五部VR视频不容错过
查看>>
phpstorm配置svn
查看>>
Mozilla 回应 Firefox 新建标签页显示广告:只是一项试验功能
查看>>
饿了么CTO张雪峰:允许90后的技术人员“浮躁“一点
查看>>
部署taokeeper
查看>>
Node.js 11.12.0 发布,服务器端的 JavaScript 运行环境
查看>>
二人热热热热热热热热热热热热热热热人
查看>>
用友谢志华:汇集企业云服务,构建云生态
查看>>
Veeam代理解决方案,让可用性永续
查看>>
聊天IM的时间戳显示规则
查看>>
区块链可能颠覆全球商品市场
查看>>
精英云集,看国内外12家顶级公司大数据实践
查看>>
Mac下运行git报错"xcrun: error: invalid active developer path .."
查看>>
AMD将推出双卡交火神油驱动,性能或提高80%
查看>>
django 1.8 官方文档翻译: 3-4-5 内建基于类的视图的API
查看>>
《Scikit-Learn与TensorFlow机器学习实用指南》第13章 卷积神经网络
查看>>
Kali Liunx 2.0震撼来袭(附下载地址、新特性和更新日志)
查看>>
https原理及tomcat配置https方法
查看>>
胶囊网络(Capsule Network)在文本分类中的探索
查看>>
VS2008简体中文版下载(及升级为正式版办法,见截图)
查看>>