首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何清除CGContextRef?

如何清除CGContextRef?
EN

Stack Overflow用户
提问于 2012-08-29 01:57:24
回答 2查看 1.4K关注 0票数 1

我尝试在ipad上创建一个简单的手指画应用程序。我能够正确地绘制到屏幕的路径,但我希望有一个选项,可以完全清除屏幕上所有绘制的路径。我当前拥有的代码清除了上下文,但是当我调用绘图代码块时,所有的路径都会重新出现在屏幕上。

代码语言:javascript
复制
- (void)drawRect:(CGRect)rect
{
   //Drawing code
   CGContextRef context = UIGraphicsGetCurrentContext();

     if(clearContext == 0){

        CGContextSetLineWidth(context, 6);
        CGContextSetRGBStrokeColor(context, 1, 0, 0, 1);
        CGContextAddPath(context, drawingPath);

        CGContextStrokePath(context);
     }
     if(clearContext == 1){

      //This is the code I currently have to clear the context, it is clearly wrong
      //Just used as experimentation.

      CGContextSetBlendMode(context, kCGBlendModeClear);
      CGContextAddPath(context, drawingPath);
      CGContextStrokePath(context);
      clearContext = 0;

     }

}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-29 02:04:49

我假设drawingPath是一个CGPath ..。你要清除那个CGPath吗?这可能就是你问题的原因。

在清除路径的操作中,请执行以下操作:

代码语言:javascript
复制
CGPathRelease(drawingPath);
drawingPath = CGPathCreateMutable();
[self setNeedsDisplay];

然后做你通常做的普通绘画。如果路径为空,则不会绘制任何内容

票数 4
EN

Stack Overflow用户

发布于 2020-07-20 05:14:20

清除所有CGContextRef图形:

代码语言:javascript
复制
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextClearRect(context, self.bounds); //self.bounds = your drawing base frame
[self setNeedsDisplay];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12164854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档