Я пытаюсь оживить колесо
Когда палец отдыхает> 0,1 с, колесо «выскакивает», т.е. я анимирую масштаб от 1,0 до 1,2.
когда палец двигается, колесо вращается вместе с ним (только если оно выскочило).
Но у меня проблема: как только он начинает вращаться, масштаб уменьшается до 1,0.
- (void) spin: (Direction) direction
{
float thetaOld = thetaWheel;
float k = (direction == AntiClockwise) ? -1 : 1;
float t = 2 * M_PI * ( k / 12.0 );
thetaWheel += t;
CABasicAnimation * anim = [CABasicAnimation animationWithKeyPath:@"transform"];
anim.fromValue = [NSNumber numberWithDouble: thetaOld];
anim.toValue = [NSNumber numberWithDouble: thetaWheel];
anim.valueFunction = [CAValueFunction functionWithName: kCAValueFunctionRotateZ];
anim.timingFunction = [CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseInEaseOut];
anim.duration = 0.1f;
anim.fillMode = kCAFillModeForwards;
anim.removedOnCompletion = NO;
[self.wheelLayer addAnimation: anim forKey:@"transform"];
}
- (void) popOut
{
CABasicAnimation * anim = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
anim.fromValue = [NSNumber numberWithDouble: 1.0];
anim.toValue = [NSNumber numberWithDouble: 1.2];
anim.timingFunction = [CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseInEaseOut];
anim.duration = 0.25f;
anim.fillMode = kCAFillModeForwards;
anim.removedOnCompletion = NO;
[self.wheelLayer addAnimation: anim forKey:@"transform.scale"];
}
// doesnt get used yet
- (void) popBack
{
CABasicAnimation * anim = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
anim.fromValue = [NSNumber numberWithDouble: 1.2];
anim.toValue = [NSNumber numberWithDouble: 1.0];
anim.timingFunction = [CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseInEaseOut];
anim.duration = 0.1f;
anim.fillMode = kCAFillModeForwards;
anim.removedOnCompletion = NO;
[self.wheelLayer addAnimation: anim forKey:@"transform.scale"];
}
Последняя рутина не привыкает в это время! Так что я не вижу, что уменьшает масштаб обратно до 1 ...
похоже, что вторая анимация перезаписывает первую ...
как это сделать правильно?