У меня есть жест панорамирования, который перемещается по серии изображений.Я не уверен, как правильно управлять памятью для этого, после панорамирования в течение определенного периода времени, я получаю сбои.
animImage является UIImageView;
Вот как этоработает:
- (IBAction) panAnim:(UIPanGestureRecognizer *)sender{
CGPoint translate = [sender translationInView:sliderView];
if (translate.x >= lastPoint) {
difference = translate.x - lastPoint;
[self forwardAnim:difference];
} else {
difference = lastPoint - translate.x;
[self backwardAnim:difference];
}
lastPoint = translate.x;
}
-(void)forwardAnim:(CGFloat)speed{
NSInteger newFrame = currentFrame+speed;
currentFrame = newFrame;
if (currentFrame>=totalFrames) {
currentFrame=0;
}
NSString *newImagePath = [NSString stringWithFormat:@"%@", [currentAnimation objectAtIndex:currentFrame]];
animImage.image = [UIImage imageNamed:newImagePath];
}
-(void)backwardAnim:(CGFloat)speed{
NSInteger newFrame = currentFrame-speed;
currentFrame = newFrame;
if (currentFrame<0) {
currentFrame=(totalFrames-1);
}
NSString *newImagePath = [NSString stringWithFormat:@"%@", [currentAnimation objectAtIndex:currentFrame]];
animImage.image = [UIImage imageNamed:newImagePath];
}
Анимация определяет положение перевода и вычисляет, в каком «кадре» должна быть анимация, а затем меняет изображение.
Я получаю очень плавную анимациюдля этого, но, очевидно, я вызываю сбой, потому что я неправильно управляю памятью.Я получаю Предупреждения в память, а затем вылетает, но только когда некоторое время прокручиваю изображения.
Мне нужно найти способ предварительно загрузить 100 изображений за раз, поэтому яможно сохранить только память на 100 изображений.Это странно, потому что изображения правильно открываются и закрываются в IO Output в Instruments.
Спасибо за вашу помощь!
Приветствия, D