当我使用UIBezierPath绘制用户触摸的位置时,如果用户快速移动,有时我会得到像三角形尖端一样的硬点。可能导致这种情况的任何线索?或者我如何解决它?
我使用touchesBegan / Moved / Ended捕获这些点并将它们放入UIBezierPaths的NSArray中。
答案 0 :(得分:2)
尽管名称如此,UIBezierPath
并不只是绘制曲线。事实上,默认情况下它不会 - 可能只是将touchesBegan
等返回的坐标传递给addLineToPoint
方法。
不是简单地将所有触摸坐标直接传递到UIBezierPath
,而应首先对它们进行插值,以避免在手指快速移动屏幕时出现这些尖锐的线条。这并不太难,虽然确实需要了解bezier曲线如何工作和样条插值。
如果您正在寻找一种稍微简单的方法,那么有一些开源库会为您执行此操作,例如:http://cocoacontrols.com/platforms/ios/controls/smooth-line-view