Мне было сложно анимировать UIImageView
между двумя состояниями: его исходную рамку прямоугольника и новую фигуру, созданную с помощью UIBezierPath
. Существует много разных техник, большинство из которых не работают для меня.Анимация между двумя формами траектории Безье
Сначала было осознание того, что использование анимации блока UIView не будет работать; очевидно, нельзя выполнять анимацию подуровней в блоке animateWithDuration:
. (См here и here)
Оставалось CAAnimation
, с конкретными подклассами, как CABasicAnimation
. Вскоре я понял, что нельзя охарактеризовать вид, который не имеет CAShapeLayer
, например, того, что делает (см., Например, here).
И они не могут быть просто любые два пути, формы слоя, а скорее «Анимационные путь слоя формы гарантируется только работать, когда вы анимировать от как нравится» (см here)
С что на месте, приходит более приземленные проблемы, как то, что использовать для fromValue
и toValue
(они должны быть CAShapeLayer
или CGPath
?), то, чтобы добавить анимацию (в layer
, или mask
?) и т.д.
Кажется, что было так много переменных; какая комбинация даст мне анимацию, которую я искал?
Спасибо, пример, и все ссылки в вашем вопросе. Интересно и полезно читать дискуссии по этому вопросу. – rdelmar
Как установить значение tovalue (myBezierTrivial.CGPath) в команде анимации? – ABJ