Я бы посмотрел в CGContextAddCurveToPoint и перетащил вокруг контрольных точек кривой. Если вам требуется больше контрольных точек для создания сложной кривой, просто разбейте получившуюся кривую на простые сегменты.
Взгляните на эту статью В ней объясняется, как рассчитать контрольные точки на основе узлов, которые вы имеете на кривой.