Беда, оживляющая вид по ключевой дорожке - PullRequest
0 голосов
/ 18 марта 2019

Я пытаюсь заставить QueueBall следовать по пути. Однако при первом запуске он отклоняется от пути и искажает форму. Как только он доберется до третьей точки - он правильно следует по пути.

Есть предложения?

Это, кажется, происходит только тогда, когда я изменяю авторазмер в Main.Storyboard, чтобы соответствовать полной длине и высоте. Но только для самого первого старта. после того, как он достигнет точки 3, он отлично работает.

Ball not following path

Ball following path

Вот код, который я использую:

-(void)startEX1{
    viewQueuBall.frame = viewP1.frame;

    [UIView animateKeyframesWithDuration:animationSpeed delay:0.0 options:UIViewKeyframeAnimationOptionAllowUserInteraction animations:^{
        [UIView addKeyframeWithRelativeStartTime:0.0 relativeDuration:0.5 animations:^{
            viewQueuBall.frame = viewP2.frame;
        }];

        [UIView addKeyframeWithRelativeStartTime:0.5 relativeDuration:1.0 animations:^{
            viewQueuBall.frame = viewP3.frame;
        }];
    }completion:^(BOOL finished) {
        [self startEX2];
    }];
}

-(void)startEX2{
    viewQueuBall.frame = viewP3.frame;

    [UIView animateKeyframesWithDuration:animationSpeed delay:0.0 options:UIViewKeyframeAnimationOptionAllowUserInteraction animations:^{
        [UIView addKeyframeWithRelativeStartTime:0.0 relativeDuration:0.5 animations:^{
            viewQueuBall.frame = viewP4.frame;
        }];

        [UIView addKeyframeWithRelativeStartTime:0.5 relativeDuration:1.0 animations:^{
            viewQueuBall.frame = viewP1.frame;
        }];
    }completion:^(BOOL finished) {
        stepCount++;

        NSLog(@"Step Count = %i", stepCount);
        NSLog(@"Animation Speed = %f", animationSpeed);

        if (stepCount > 5) {
            [self performSegueWithIdentifier:kSegueGameCompleted sender:self];
            return;
        }

        if (stepCount == 2) {
            animationSpeed = 2.0;
        }else if (stepCount == 3){
            animationSpeed = 1.5;
        }else if (stepCount == 4){
            animationSpeed = 1.0;
        }

        [self startEX1];
    }];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...