Технические вопросы и ответы QA1673
Как приостановить анимацию дерева уровня
Q: Как я приостанавливаю все анимации в дереве уровня?
A: Для приостановки анимаций в дереве уровня можно использовать в своих интересах факт это a CALayer соответствует CAMediaTiming протокол. CAMediaTiming протокол определяет, среди прочего, скорость, с которой развивается ее временная шкала, который можно использовать для приостановки всех анимаций на целевом слое. Перечисление 1 демонстрирует, как можно сделать это.
Пауза перечисления 1 и анимации Резюме.
-(void)pauseLayer:(CALayer*)layer
{
CFTimeInterval pausedTime = [layer convertTime:CACurrentMediaTime() fromLayer:nil];
layer.speed = 0.0;
layer.timeOffset = pausedTime;
}
-(void)resumeLayer:(CALayer*)layer
{
CFTimeInterval pausedTime = [layer timeOffset];
layer.speed = 1.0;
layer.timeOffset = 0.0;
layer.beginTime = 0.0;
CFTimeInterval timeSincePause = [layer convertTime:CACurrentMediaTime() fromLayer:nil] - pausedTime;
layer.beginTime = timeSincePause;
} |
История версии документа
| Дата | Примечания |
|---|---|
| 22.08.2011 | Фиксированная опечатка в листинге кода. |
| 02.06.2010 | Новый документ, описывающий, как можно приостановить анимации в дереве уровня |