CALayer presentationLayer медленный и отсталый - PullRequest
0 голосов
/ 20 марта 2012

Сценарий:

У меня есть группа движущихся блоков, которые перемещаются из столбца 0 в 7. Когда пользователь нажимает, блоки останавливаются.

Вот мой код:

- (IBAction)userTap:(id)sender
{
    [block1.layer removeAllAnimations];
    [block2.layer removeAllAnimations];
    [block3.layer removeAllAnimations];
}

Теперь я получаю слой представления и извлекаю необходимую информацию:

CALayer *player = [block1.layer presentationLayer];
float currentTranslation = [[pLayer valueForKeyPath:@"transform.translation.x"] floatValue];
// Set position of non-moving blocks here

currentTranslation верен, и я также проверил его, используя синхронизацию.Однако, похоже, что анимация работает быстрее, чем мой presentationLayer, и поэтому я вижу рывок, который происходит прямо при нажатии.

Что здесь происходит и как я могу это исправить?

1 Ответ

0 голосов
/ 03 июля 2012

Используете ли вы CADisplayLink для определения времени анимации в цикле выполнения и переопределения CALayer's неявных анимаций с помощью CATransaction?

Этот пост в блоге покрывает некоторые из них, если нет.

...