ios 绘图 橡皮 的实现办法 自由批注橡皮的实现办法 缓存位图橡皮的实现办法 bitmap Quartz 2D 缓存位图
来源:互联网 发布:淘宝直通车溢价 编辑:程序博客网 时间:2024/04/26 05:22
首先说明一下我想实现的橡皮的项目背景:有一个展示ppt的view,覆盖到它上面一个背景色为clearColor的subview,这个subview重写了绘图方法,用户可以在上面进行绘图,显然,橡皮的功能就是能把当前的背景色为clearColor上的不透明的线条用类似画笔的方式进行擦除,可以调整橡皮的粗细。
思路一:我去,这还不简单,画图板都是这么实现的,直接把画笔的颜色设为clearColor,然后直接在subview上面绘图不就行了么,绘图即擦除,简直太简单了,而且不可能有问题
结果:我日他奶奶的,用clearColor的画笔在clearColor为背景的view上绘图,你猜是什么颜色,肯定还是clearColor呗,错。。。。。。。⋯⋯⋯⋯⋯⋯⋯⋯是黑色,结果一出来我就崩溃了,我去 这也行,XCODE你也太坑了吧
思路二:好吧,你赢了,那我用背景色涂行么。。。
结果:。。。。当然还是黑色
思路三:在请教了多方专家以后得到完美实现,核心方法
CGContextClearRect(bitmapContext, <#CGRect rect#>)橡皮方法实现的核心方法
在drawLineFrom:(CGPoint)aStart andTo:(CGPoint)aEnd方法的最后一步,就是把线条加入context的时候进行判断,如果橡皮位(flag:从控制器得到,本身也是代理的成员)为NO就还是普通的绘制过程,如果为yes直接擦除当前操作的rect,这样完美实现了橡皮。当然flag你的从视图控制器一层一层传过来,view里也设一个flag变量会稍微简单点,祝大家早日实现
if(flag ==NO)
{
CGContextFillEllipseInRect(bitmapContext, rect );
//CGContextFillRect(bitmapContext, rect);
}
else
{
CGContextClearRect(bitmapContext, rect);
}
关于自由批注的其他代码 参考我其他的帖子 需要源码请留言
代码地址
http://dl.dbank.com/c0gys4jhay
- ios 绘图 橡皮 的实现办法 自由批注橡皮的实现办法 缓存位图橡皮的实现办法 bitmap Quartz 2D 缓存位图
- ios 自由批注功能的实现 如何实现在view上自由绘图 bitmap Quartz 2D 缓存位图
- ios 画图 绘图的实现(自由批注中视图的subview的实现)bitmap Quartz 2D 缓存位图 自由批注功能的实现 如何实现在view上自由绘图 提供源码
- iOS 画板的实现,具有颜色、线宽、橡皮、撤销和清屏功能
- java绘图_铅笔的实现,参数传递的感想,绘图版_刷子_橡皮的思想
- 要不就老扔我的橡皮,
- 橡皮筯式下拉刷新控件的实现,效果超赞(OC版本)
- 如何实现一个橡皮区矩形
- 单缓冲实现橡皮矩形 源代码
- 双缓冲实现橡皮矩形 源代码
- 安卓-橡皮擦擦线完整实现
- 位图bitmap的实现作用
- 禁止页面缓存的办法
- button实现超链接的办法
- 使用bitmapData简单实现涂鸦中的橡皮功能(as3)
- 使用bitmapData简单实现涂鸦中的橡皮功能[Flex]
- BitMap(位图)结构的C++实现
- 位图的简单实现(bitMap)
- oracle诊断工具-RDA使用(转)
- 今天是我第一次换工作,留个言
- 浅谈缓存
- linux: platform 设备的注册
- Oracle 字符集的查看和修改
- ios 绘图 橡皮 的实现办法 自由批注橡皮的实现办法 缓存位图橡皮的实现办法 bitmap Quartz 2D 缓存位图
- 月光边境――孤独
- pcie
- 细说IIS异常日志 — 你必须知道的功能
- 《who am i》-linux命令五分钟系列之十六
- DataGridView指定单元格的编辑状态与修改
- 分享20个网站登录页面模板免费PSD素材
- 一些地址
- android学习网址