问题标签 [uibezierpath]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
10459 浏览

iphone - 如何使用 UIBezierPath 绘制平滑直线?

我希望能够使用UIBezierPath. 我该怎么办?

我想做的是这样的:我双击屏幕来定义起点。一旦我的手指在屏幕上方,直线就会随着我的手指移动(这应该恰好弄清楚我应该将下一个手指放在哪里,以便它会创建一条直线)。然后,如果我再次双击屏幕,则定义了终点。

此外,如果我双击终点,应该会开始新的一行。

是否有任何可用资源可供我用作指导?

0 投票
1 回答
1653 浏览

iphone - 如何细分 UIBezierPath 并将其存储在两个不同的对象中

我在应用程序中有 UIBezierPath。当识别到路径上的手指触摸时,我想细分该曲线并将两条曲线存储到两个不同的对象中。因此,触摸坐标将作为一条曲线的终点和第二条曲线的起点。

同样,如果我触及这条曲线中的任何一条,这条曲线将细分为另外两条曲线,依此类推。

我搜索了很多。但找不到任何好的解决方案。

我也不知道是否有其他方法可以做到这一点。任何帮助将不胜感激。谢谢

0 投票
1 回答
1634 浏览

iphone - 不规则形状的 UIBezierPath 填充

我正在做一些自定义控件。控件的其中一个子视图是透明的,并且绘制UIView了路径。UIBezierPath在其中一张照片上,我们只说边界UIBezierPath(称为 [路径笔划]),但在第二张照片上,您可以看到当我调用 [路径填充] 时会发生什么。我想要填充路径以创建类似于第一张照片上的形状。drawRect这个透明UIView的方法如下。

感谢帮助 !

第一张图片 第二张图片

0 投票
3 回答
1397 浏览

ios - 如何剪切或禁用 UIView 的一部分?

我有一个 UIView 的自定义子类 LineDrawingView。我将其作为主视图控制器中的@property 并将其添加到视图中。这很好用——它在当前视图之上创建一个透明视图,并使用 UIBezierPath、touchesBegan、touchesMoved 等,因此您可以通过拖动手指来绘制整个视图。

我需要将该绘图视图设为“L”形,这样我就可以在左下角有一个区域来放置各种控件。我想不出任何办法使绘图视图为“L”形,除了可能添加两个单独的矩形绘图视图,但这不起作用,因为当您将手指从一个矩形拖动到另一个矩形时,触摸会中断。我想出的另一个解决方案是在绘图视图之上添加另一个视图。这个视图应该阻止绘图,我还可以在其中找到我的控件,以便在启用绘图时它们仍然可用。

我尝试创建一个 UIView 并将其添加为绘图视图的子视图。我给它染色了,这样我就可以检查它是否存在并且在正确的位置。我希望这可以防止在新 UIView 的区域内绘图,但在 LineDrawingView 的整个区域内继续绘图。我还尝试在索引 2 处插入新的 UIView,在索引 1 处插入 LineDrawingView。它仍然没有影响绘图。

我很想知道:我怎么能...

创建一个“L”形的图纸视图?或者 剪下绘图视图的一部分,以便用户可以与它后面的内容进行交互?或者在绘图视图顶部强加一个区域,我可以在其中禁用绘图并添加我的控件?

0 投票
1 回答
1769 浏览

objective-c - 如果与 CGContextSetShadowWithColor 一起使用,UIBezierPath 会降低性能

我正在开发一个应用程序,用户可以在其中用手指触摸画线或简单地喷涂颜色。我正在使用 UIBezierPath 在 drawRect 方法中使用以下代码绘制手指触摸的路径(颜色)。

CGContextRef 上下文 = UIGraphicsGetCurrentContext();

这段代码在模拟器上运行完美,但在设备上喷雾真的很慢。问题仅在于方法调用 CGContextSetShadowWithColor,如果我评论这条线性能最好,完全没有问题。

请告诉我为什么会这样,我该怎么办。这条线是必要的,因为我想用模糊阴影显示类似喷雾的效果。

0 投票
9 回答
31906 浏览

iphone - UIBezierPath 减去路径

通过使用[UIBezierPath bezierPathWithRoundedRect:byRoundingCorners:cornerRadii:],我可以创建一个圆形视图,例如:

圆形视图

我怎么能从这条路径(或其他方式)中减去另一条路径,以创建这样的路径:

减法视图

有什么办法可以做这样的事情吗?伪代码:

0 投票
2 回答
824 浏览

cocoa-touch - 沿 UIBezierCurve 查询动画的特定点?

我最近为 Maya 编写了一个脚本,该脚本导出了一个包含 Bezier 路径(一系列 xy 点和 xy 控制点)数据的文件。

此贝塞尔路径旨在表示我的角色将在应用程序内以恒定速度行驶的 3D“轨道”或路径。

我了解如何构建 UIBezierCurve,但我似乎无法找到任何可靠的信息,如果它可能/如何获得曲线上一个点的 x / y 位置,给定沿曲线行进的距离。

我在苹果上找到了这个列表:

http://lists.apple.com/archives/cocoa-dev/2002/Feb/msg01806.html

但我不太明白该函数返回什么以及如何使用它来完成我的目标。

任何帮助/建议将不胜感激,

谢谢,-亚当·艾斯菲尔德

0 投票
1 回答
1605 浏览

ios - 将 UIBezierPath 虚线重置为法线

我知道UIBezierPath- (void)setLineDash:(const CGFloat *)pattern count:(NSInteger)count phase:(CGFloat)phase方法可以画虚线。

但是如何在编程中将其重置为正常行?

0 投票
1 回答
1127 浏览

objective-c - 调试 UIBezierPath

我正在努力显示UIBezierPath我在代码中生成的 a,因此在尝试调试它时,我想打印它绘制的坐标。我在任何地方都找不到这种技术。鉴于下面的代码,有人可以分享这个吗?

谢谢

0 投票
2 回答
1061 浏览

objective-c - 如何擦除用 NSBezierPath 绘制的东西?

我刚刚使用 NSBezierPath 创建了一条路径,并使用 [path fill] 将其绘制到视图上。我的问题是如何删除我绘制的内容?

一种可能的解决方案是使用背景颜色再次使用 [路径填充],但如果有背景图像而不是简单的背景颜色,这将不起作用。所以有人有什么想法吗?