Я анимирую маятник, который качается от 0 градусов до максимум 200 градусов, а затем обратно. Проблема в том, что если маятник проходит более 180 градусов, он возвращается к 0 по кратчайшему пути, который должен продолжаться по часовой стрелке. И я бы хотел, чтобы он шел против часовой стрелки. Вот мой код: («право» — это логическое значение, которое является ИСТИННЫМ, когда маятник качается слева направо)
- (void)swingPendulum {
CABasicAnimation *rotationAnimation;
rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
if (right)
rotationAnimation.toValue = [NSNumber numberWithFloat:degreesToRadians(kMax)];
else
rotationAnimation.toValue = [NSNumber numberWithFloat:degreesToRadians(kMin)];
rotationAnimation.duration = 1.0;
rotationAnimation.repeatCount = 1.0;
rotationAnimation.delegate = self;
rotationAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
rotationAnimation.removedOnCompletion = NO;
[pendulum.layer addAnimation:rotationAnimation forKey:@"rotationAnimation"];
}
Любые идеи, как я могу сделать эту работу? Это последняя часть моей головоломки свингометра, которая в остальном отлично работает :D Спасибо!
Майкл