O durumdan iki rotasyon benim CAAnimationGroup
animasyonlar, sıfırdan başlar diğeri tekrarlar başka ve autoreverses vardır:CAAnimationGroup için maksimum süre değeri (CFTimeInterval) nedir?
- (void)addWobbleAnimationToView:(UIView *)view amount:(float)amount speed:(float)speed
{
NSMutableArray *anims = [NSMutableArray array];
// initial wobble
CABasicAnimation *startWobble = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
startWobble.toValue = [NSNumber numberWithFloat:-amount];
startWobble.duration = speed/2.0;
startWobble.beginTime = 0;
startWobble.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
[anims addObject:startWobble];
// rest of wobble
CABasicAnimation *wobbleAnim = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
wobbleAnim.fromValue = [NSNumber numberWithFloat:-amount];
wobbleAnim.toValue = [NSNumber numberWithFloat:amount];
wobbleAnim.duration = speed;
wobbleAnim.beginTime = speed/2.0;
wobbleAnim.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
wobbleAnim.autoreverses = YES;
wobbleAnim.repeatCount = INFINITY;
[anims addObject:wobbleAnim];
CAAnimationGroup *wobbleGroup = [CAAnimationGroup animation];
wobbleGroup.duration = DBL_MAX; // this stops it from working
wobbleGroup.animations = anims;
[view.layer addAnimation:wobbleGroup forKey:@"wobble"];
}
CFTimeInterval çift olarak tanımlanır beri, animasyon grubunun süresini ayarlamayı deneyin DBL_MAX
, ancak bu animasyon grubunun çalışmasını durdurur. Ancak, 10000 gibi bir sayıya ayarlıysem iyi çalışır. CAAnimationGroup
süresi boyunca kullanabileceğim en büyük sayı, mümkün olduğunca sonsuzluğa yakın çalışmasını sağlamak için nedir?
GÜNCELLEME: Ben böyle DBL_MAX/4.0
olarak çok büyük bir değer koyarsanız o zaman o animasyon başlar, bir saniye donar anlaşılmaktadır. DBL_MAX/20.0
değerini girersem, başlangıçta donma çok daha küçük olur. Süre boyunca böyle büyük bir değere sahip olmanın donmaya neden olduğu görülüyor. Bu süreyi, süre için çok büyük bir değer kullanmaktan daha iyi bir yolu var mı?
Bu animasyon grubunu sonsuza kadar tekrar etmeyi deniyor musunuz? –
evet, ama sadece grubun ikinci kısmının sonsuza kadar tekrarlanmasını istiyorum. – jowie
Süreyi ayarlamanız gerektiğinden emin misiniz? Eğer onu bırakmazsan ne olur? –