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

Posted

技术标签:

【中文标题】我无法删除从 UIBezierpath Path 绘制的单个点【英文标题】:I am not able to delete single dot drawn from UIBezierpath Path 【发布时间】:2016-07-20 05:17:46 【问题描述】:

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

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

现在,当我完成此操作后,我可以尽可能多地添加“点”。并将这些点添加到数组中并在 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 绘制的线条,但我无法清除使用相同 UIBezierpath 绘制的点。

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

这是橡皮擦的代码。

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】:

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

因此,如果您希望擦除给定的点,则需要点数组是可变的,并且需要从数组中删除实际的路径对象。

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

【讨论】:

以上是关于我无法删除从 UIBezierpath Path 绘制的单个点的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 UIBezierPath 保存裁剪的图像

Swift - 使用 UIBezierPath 剪切图像

贝赛尔曲线UIBezierPath

UIBezierPath 类的使用

如何从 Mac 上的 $PATH 中删除条目

UIBezierPath 一起绘制矩形和圆弧