Sto aggiungendo un CAKeyframeAnimation allo strato di un ImageView per rappresentare l'animazione di un'immagine:La rimozione CAKeyframeAnimation non rilascia la memoria
CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"contents"];
animation.values = arrayOfImages;
[animation setRemovedOnCompletion:YES];
animation.delegate = self;
[animation setValue:delegate forKey:@"AnimatedImageViewDelegate"];
animation.repeatCount = repeatCount;
animation.fillMode = kCAFillModeForwards;
animation.calculationMode = kCAAnimationDiscrete;
[animation setValue:animationName forKey:@"name"];
Quando voglio avviare l'animazione che io chiamo:
animation.duration = duration;
[self.layer addAnimation:animation forKey:animationName];
[self.layer setContents:[animation.values lastObject]];
Al termine dell'animazione, voglio rimuoverlo completamente e rilasciare la sua memoria.
[self.layer removeAllAnimations];
[self.layer removeAnimationForKey:animationName];
Facendo questo, e l'utilizzo di strumenti-Activity Monitor, la memoria non è relased a meno che vi liberi l'ImageView completa.
Come posso liberare la memoria dell'animazione senza distruggere UIImageView ???
si può provare a portarlo in autoreleasepool – SAKrisT