Я написал это CAKEyFrameAnimaton
, чтобы повернуть CALayer
вокруг своей оси X. Но это не вращение. Что я тут не так делаю?
CAKeyframeAnimation *topFoldAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform.rotation.x"];
topFoldAnimation.duration = 15;
topFoldAnimation.repeatCount = 1;
topFoldAnimation.removedOnCompletion = NO;
topFoldAnimation.autoreverses = NO;
topFoldAnimation.fillMode = kCAFillModeForwards;
CATransform3D tTrans = CATransform3DIdentity;
tTrans.m34 = -1/900;
topFoldAnimation.values = [NSArray arrayWithObjects:
[NSValue valueWithCATransform3D:CATransform3DRotate(tTrans,DEGREES_TO_RADIANS(0),1,0,0)],
[NSValue valueWithCATransform3D:CATransform3DRotate(tTrans,DEGREES_TO_RADIANS(-30),1,0,0)],
[NSValue valueWithCATransform3D:CATransform3DRotate(tTrans,DEGREES_TO_RADIANS(-60),1,0,0)],
[NSValue valueWithCATransform3D:CATransform3DRotate(tTrans,DEGREES_TO_RADIANS(-90),1,0,0)],
nil];
topFoldAnimation.keyTimes = [NSArray arrayWithObjects:
[NSNumber numberWithFloat:0.00],
[NSNumber numberWithFloat:0.25],
[NSNumber numberWithFloat:0.50],
[NSNumber numberWithFloat:1.00],
nil];
topFoldAnimation.timingFunctions = [NSArray arrayWithObjects:
[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear],
[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear],
[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear],
[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear],
nil];
[[backgroundAnimationLayer.sublayers objectAtIndex:1] addAnimation:topFoldAnimation forKey:@"transform.rotation.x"];
Любая помощь приветствуется. Спасибо ...