2011-09-02 83 views
0

当我使用UIBezierPath绘制用户触摸的位置时,如果用户有时快速移动,我会得到像三角形尖端这样的难点。任何线索可能造成这种情况?或者我可以如何解决它?UIBezierPath提供尖锐边缘

我使用touchesBegan/Moved/Ended捕获点并将它们放入UIBezierPaths的NSArray中。

回答

2

尽管名称,UIBezierPath不只是绘制曲线。实际上,默认情况下它不会 - 大概你只是将touchesBegan等返回的坐标传递给addLineToPoint方法。

而不是简单地将所有的触摸坐标直接传递到UIBezierPath你应该首先插入它们,以避免当你快速移动你的手指在屏幕上出现这些尖锐的线条。这并不难,虽然确实需要一些关于贝塞尔曲线如何工作和样条插值的知识。

如果你正在寻找一个稍微简单的出路,有几个开源库会为你做这件事,比如这个:http://cocoacontrols.com/platforms/ios/controls/smooth-line-view