Есть ли проблема с обновлением позиции CALayer, когда уровень приостановлен?

Есть ли проблема с чтением позиции презентации во время паузы?

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

Есть ли проблема с чтением позиции презентации во время паузы?

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

Есть ли проблема с чтением позиции презентации во время паузы?

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

Это код, который я использую, чтобы приостановить и возобновить CALayer (на основе Technical Q&A QA1673 предоставлено Apple):

CFTimeInterval pausedTime;
void pauseLayer(CALayer *layer)
{
    pausedTime = [layer convertTime:CACurrentMediaTime() fromLayer:nil];
    layer.speed = 0.0;
    layer.timeOffset = pausedTime;
    layer.beginTime = 0;
//    layer.position = ((CALayer*)[layer presentationLayer]).position;
}
void resumeLayer(CALayer *layer)
{
    layer.speed = 1.0;
    layer.timeOffset = 0.0;
    layer.beginTime = 0.0;

    CFTimeInterval _elapsedTimeSincePaused = [layer convertTime:CACurrentMediaTime() fromLayer:nil] - pausedTime;
    layer.beginTime = _elapsedTimeSincePaused;
}

Если я раскомментирую layer.position = ((CALayer *) [layer presentationLayer]). Position; в pauseLayer , слой мигнет один раз Я вызываю resumeLayer .

Это мой код анимации:

- (void) startAnimation:(id)sender
{
    layer10Animation = [CABasicAnimation animationWithKeyPath:@"position.x"];
    layer10Animation.duration = 1;
    layer10Animation.toValue = [NSNumber numberWithInt:300];
    layer10Animation.fromValue = [NSNumber numberWithInt:20];
    layer10Animation.repeatCount = 100;
    layer10Animation.autoreverses = YES;

    [layer10 addAnimation:layer10Animation forKey:nil];
}

С уважением

6
задан Hagelin 12 May 2011 в 18:36
поделиться