我无法删除从UIBezierpath路径绘制的单个点

时间:2016-07-20 05:17:47

标签: ios objective-c xcode uibezierpath

我正在使用UIBezierpath在我的UIView上绘制一个点。 我也跟着这个链接。

How can i draw a dot on the screen on touchesEnded using UIBezierpath

现在,当我完成这项工作后,我可以添加" dot"尽我所能。并将这些点添加到数组并在UIView上显示它们。

如果我在选择橡皮擦时清理阵列,则所有点都会被清除。我无法清除单个/特定点。

这是用于向数组添加点并在UIView上显示它们的方法。

- (void)drawRect:(CGRect)rect
{
    [incrementalImage drawInRect:rect];
         for (int i = 0; arrayOfDots.count>i;i++)
         {
             UIBezierPath *path = [arrayOfDots objectAtIndex:i];
             UIColor *color = [arrayOfDotColor objectAtIndex:i];
             [color setFill];
             [path fill];
         }
}

我有橡皮擦来清理UIView上绘制的东西。 我能够清理使用UIBezierpath绘制的线条,但我无法清除使用相同UIBezier路径绘制的点。

橡皮擦绝不是,我只是选择白色并在当前视图上绘制相同的白色。

这是橡皮擦的代码。

self.strockColour = [UIColor colorWithRed:255.0/255.0 green:255.0/255.0 blue:255.0/255.0 alpha:1.0f];

[objBezierpath setLineWidth:25];

任何人都可以指导我如何删除特定的选定点。

提前致谢。

1 个答案:

答案 0 :(得分:1)

如果我正确理解您的代码片段,那么您将为数组中的每个点实例化一个新的UIBezierPath对象。

因此,如果你想删除一个给定的点,你需要点数组是可变的,你需要从数组中删除实际的路径对象。

我建议你创建一个UIBezierPath对象并拥有一个只存储CGPoints的数组。