Несмотря на название, UIBezierPath
не просто рисует кривые. На самом деле, по умолчанию это не так - возможно, вы просто передаете координаты, возвращенные touchesBegan
и т. Д., В метод addLineToPoint
.
Вместо того, чтобы просто передавать все координаты касания непосредственно в UIBezierPath
, вы должны сначала интерполировать их, чтобы избежать резких линий, возникающих при быстром перемещении пальца по экрану. Это не так уж сложно, хотя требует некоторых знаний о том, как работают кривые Безье и сплайн-интерполяция.
Если вы ищете немного более простой выход, есть пара библиотек с открытым исходным кодом, которые сделают это для вас, как эта: http://cocoacontrols.com/platforms/ios/controls/smooth-line-view