Я добавляю CAKeyframeAnimation в слой ImageView для представления анимации изображения:
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"];
Когда я хочу запустить анимацию, я вызываю:
animation.duration = duration;
[self.layer addAnimation:animation forKey:animationName];
[self.layer setContents:[animation.values lastObject]];
Когда анимация закончится, я хочу полностью удалить ее и освободить память.
[self.layer removeAllAnimations];
[self.layer removeAnimationForKey:animationName];
Выполняя это и используя Instruments-Activity Monitor, память не освобождается, пока я не выпущу полный imageView.
Как я могу освободить эту анимационную память, не уничтожая UIImageView???