UIBezierPath提供锋利的边缘

时间:2011-09-02 04:41:49

标签: iphone quartz-graphics drawrect quartz-2d uibezierpath

当我使用UIBezierPath绘制用户触摸的位置时,如果用户快速移动,有时我会得到像三角形尖端一样的硬点。可能导致这种情况的任何线索?或者我如何解决它?

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

1 个答案:

答案 0 :(得分:2)

尽管名称如此,UIBezierPath并不只是绘制曲线。事实上,默认情况下它不会 - 可能只是将touchesBegan等返回的坐标传递给addLineToPoint方法。

不是简单地将所有触摸坐标直接传递到UIBezierPath,而应首​​先对它们进行插值,以避免在手指快速移动屏幕时出现这些尖锐的线条。这并不太难,虽然确实需要了解bezier曲线如何工作和样条插值。

如果您正在寻找一种稍微简单的方法,那么有一些开源库会为您执行此操作,例如:http://cocoacontrols.com/platforms/ios/controls/smooth-line-view