2013-06-11 2 views
1

Я объединяя несколько анимаций, и мне не удается удалить паузу между последовательными анимациями. Во-первых, я попытался вложить анимацию UIView в блоки завершения. С тех пор я переехал к этому решению:Удалить паузу между анимацией UIView

http://xibxor.com/objective-c/uiview-animation-without-nested-hell/

Я думаю, что это более удобным для чтения, но у меня такая же проблема паузы.

ответ

1

Проблема, вероятно, заключается в том, что вы настроили анимацию, а не паузы. По умолчанию анимация использует легкость, облегчает синхронизацию. Это означает, что каждая анимация начинается с 0, ускоряется до полной скорости, а затем замедляется до остановки. Затем следующая анимация делает то же самое.

Если вы хотите связать серию анимаций, чтобы создать бесшовный эффект, вы, вероятно, захотите использовать линейную анимацию. Посмотрите на метод класса UIView animateWithDuration: delay: options: animation: завершение:

Перейдите в UIViewAnimationOptionCurveLinear для параметра параметров.

+0

Настройка параметров UIViewAnimationOptionCurveLinear улучшила анимацию, но между анимациями все еще есть небольшая пауза. Я думаю, это потому, что анимация не запускается в одном блоке анимации, но я не уверен. – JeffRegan

1

Это быстро, слишком лениво, чтобы преобразовать в цель C. Цепь анимации вместе в блоке транзакции анимации.

UIView.animateKeyframesWithDuration(totalAnimationDuration, delay: 0, options:UIViewKeyframeAnimationOptions.CalculationModeLinear, animations: { 

      for (var i = 0; i < wayPoints.count; i++) { 
       let nextWayPoint = wayPoints[i] 

       UIView.addKeyframeWithRelativeStartTime(CGFloat(i) * relativeDuration, relativeDuration: relativeDuration, animations: { 
        token.frame = CGRect(x: nextWayPoint.x + self.inset, y: nextWayPoint.y + self.inset, width: token.frame.size.width, height: token.frame.size.height) 
        }) 


      } 


      }, completion: { success in 


      }) 
+0

Это не отвечает на мой вопрос, и это не вопрос, о котором спрашивал этот вопрос. – JeffRegan

+0

Чтобы быть справедливым, вы не указали цель-c, и он отвечает на ваш вопрос. –

+0

@JeffCompton, он переводит на Obj-C, используя те же самые вызовы API, показанные выше. Он прав, заявляя, что вы должны связать анимацию одним мазком, используя что-то вроде ключевого кадра. Как вы можете видеть выше, он динамически создает анимации и добавляет их сразу. Это приведет к анимации анимации в одну анимацию ключевого кадра. Это предотвращает задержку, вызванную вами, так как будет задержка, ожидающая завершения обратного вызова завершения от переданного CATransation. – TheCodingArt

Смежные вопросы