4

Мне нужно синхронизировать анимацию пути на двух разных уровнях (один используется как маска для другого уровня, другой - графический элемент, который следует за контуром, т. Е. Рисует маску). Если я просто установил их одинаково, они никогда не будут делать то же самое. В настоящее время я использую CAKeyframeAnimation с контуром (для графического элемента) и CABasicAnimation, где я анимация «strokeEnd» того же пути от 0.0 до 1.0 (для маски).iPhone: Синхронизация анимаций на двух разных уровнях

Я думаю, что анимационная группа здесь не работает, так как это будет означать, что я применяю группу к слою маски, что скроет графический элемент.

ответ

5

Вы установили calculationMode = kCAAnimationPaced для анимации ключевого кадра?

+0

Нет, у меня не было. Это действительно устранило мою проблему. Спасибо, Оле. Как-то у вас, кажется, есть все ответы, связанные с анимацией :) –

+0

Рад, что я мог помочь. На данный момент я работаю над подобной задачей, поэтому мы, вероятно, попадаем в те же камни преткновения. –

+1

Мое приложение также использует путь, определенный «bezierPathWithOvalInRect:», и я заметил, что в iOS 7 графический элемент, следующий за контуром, больше не синхронизируется с «strokeEnd» базовой анимации. Вы столкнулись с этим? Любые идеи, как исправить? – XJones

2

Apple сообщила мне об известной ошибке в iOS7, где определенные пути (такие как эллиптические пути) не будут работать хорошо для анимации 2 разных слоев по одному и тому же пути, например. strokeEnd одного слоя и положение другого слоя. В частности, 2 анимации попадают и не синхронизируются во время анимации, и выглядят неаккуратно. Apple также сообщила мне, что не существует обходного пути. Я также подал ошибку с Apple.