Я пытаюсь заставить QueueBall следовать по пути. Однако при первом запуске он отклоняется от пути и искажает форму. Как только он доберется до третьей точки - он правильно следует по пути.
Есть предложения?
Это, кажется, происходит только тогда, когда я изменяю авторазмер в Main.Storyboard, чтобы соответствовать полной длине и высоте. Но только для самого первого старта. после того, как он достигнет точки 3, он отлично работает.
Вот код, который я использую:
-(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];
}];
}