Bunu, tabakanın transform.rotation
anahtar yolu hareketlendirerek kendi Z ekseni etrafında bir (veya daha fazla) tam dönüşleri sayesinde bir tabaka animasyon:
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
animation.duration = .25;
animation.fromValue = [NSNumber numberWithFloat:0];
animation.toValue = [NSNumber numberWithFloat:2 * M_PI];
[layer addAnimation:animation forKey:animation.keyPath];
Eğer X veya Y ekseni etrafında animasyon Anahtar yolları transform.rotation.x
ve transform.rotation.y
kullanarak. (transform.rotation.z
anahtar yolu, transform.rotation
anahtar yolu ile aynı etkiye sahiptir.) Birden fazla rotasyonu, aynı anda ayrı eksenlerde uygulayabilirsiniz.
CALayer *layer = [sender layer];
CATransform3D transform = CATransform3DIdentity;
transform.m34 = 1.0/-50;
layer.transform = transform;
CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"transform"];
animation.values = [NSArray arrayWithObjects:
[NSValue valueWithCATransform3D:CATransform3DRotate(transform, 0 * M_PI/2, 100, 1, 100)],
[NSValue valueWithCATransform3D:CATransform3DRotate(transform, 1 * M_PI/2, 100, 1, 100)],
[NSValue valueWithCATransform3D:CATransform3DRotate(transform, 2 * M_PI/2, 100, 1, 100)],
[NSValue valueWithCATransform3D:CATransform3DRotate(transform, 3 * M_PI/2, 100, 1, 100)],
[NSValue valueWithCATransform3D:CATransform3DRotate(transform, 4 * M_PI/2, 100, 1, 100)],
nil];
animation.duration = 2;
[layer addAnimation:animation forKey:animation.keyPath];
180 veya 360 derece döndürmek için çalışıyorsunuz:
Eğer eksen dışı vektör etrafında döndürmek istiyorsanız muhtemelen daha iyi çalışır bunu yapmak için başka bir yolu da, böyle bir anahtar kare animasyon kullanıyor ? Çünkü 360 derece dönmenin, dönmediğiyle aynı olduğunu düşünüyorum. – htinlinn
@htinlinn Bence katını tam 360 derece döndürerek canlandırmaya çalışıyor. –
@ robmayoff ah. tamam. – htinlinn