Я бы порекомендовал использовать для этого CAShapeLayer .CAShapeLayers позволяет вам анимировать между различными определенными путями с одинаковым количеством контрольных точек.В этом случае вы можете создать путь для прямого условия, используя ряд кривых Безье, которые не изогнуты, а затем нарисовать путь с кривыми для изогнутого условия.
Используя CABasicAnimation, вы можете плавно анимировать между этими двумя состояниями, создавая нужный эффект.Вы даже можете использовать CAKeyframeAnimation для создания небольшого отскока в анимации между прямой и изогнутой.
Более подробно о CAShapeLayer, я направлю вас к статье "Марширующие муравьи с базовой анимацией" Мэтт Лонг и "Комплексная интерполяция с помощью CAShapeLayer (Free)" от Джо Ричиоппо.