使用UIBezierPath擦除线条图

时间:2011-05-30 14:24:46

标签: iphone cocoa-touch

使用UIBezierPath进行线条绘制的简单应用程序,但现在需要一种方法来擦除使用UIBezierPath绘制的线条。有没有办法实现橡皮擦功能去除线条画?

4 个答案:

答案 0 :(得分:6)

如果您使用图像作为背景,那么您可以设置与画笔图案相同的图像来绘制贝塞尔曲线,它实际上会为您提供橡皮擦效果。这个对我有用。 :)

    brushPattern=[[UIColor alloc]initWithPatternImage:[UIImage imageNamed:@"image.jpg"]];
    // Here image.jpg is you background image

答案 1 :(得分:1)

if(erase)
{
    [myPath strokeWithBlendMode:kCGBlendModeClear alpha:1.0f];
}
else
{
    [myPath strokeWithBlendMode:kCGBlendModeNormal alpha:1.0f];
}

答案 2 :(得分:0)

橡皮擦有效地绘制了一条与迄今为止绘制的每条路径上的背景颜色相同的线条。您可能需要注意它是某个橡皮擦线,以便在背景颜色发生变化时更新橡皮擦线的笔触颜色,否则会失去擦除的错觉。

答案 3 :(得分:0)

根据你对杰里米答案的评论,你似乎想要做虚线。您是否尝试过使用setLineDash:count:phase:

UIBezierPath *path = [UIBezierPath new];
CGFloat dashArray[3];
dashArray[0] = 8;
dashArray[1] = 3;
dashArray[2] = 8;
[path setLineDash:dashArray count:dashCount phase: 0.0];

Apple在此处提供示例代码:http://developer.apple.com/library/mac/#samplecode/BezierPathLab/Introduction/Intro.html