Я пытаюсь уменьшить изображение, изменить изображение, а затем снова увеличить его.
CABasicAnimation* shrink = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
shrink.toValue = [NSNumber numberWithDouble:0];
shrink.duration = 1;
shrink.delegate = self;
[myImageView.layer addAnimation:shrink forKey:@"shrink"];
делает сжатие, затем, когда оно завершается, я меняю изображение и начинаю увеличивать:
- (void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag
{
myImageView.image = [images objectAtIndex:image];
CABasicAnimation* grow = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
grow.toValue = CGAffineTransformMakeScale(1,1);
grow.delegate = self;
grow.duration = 1;
[myImageView.layer addAnimation:grow forKey:@"grow"];
}
Это прекрасно работает на симуляторе, но на устройстве, когда сжатие завершается, я получаю вспышку полноразмерного старого изображения, а затем начинается анимация увеличения с новым изображением.
Любая идея, как избавиться от этой вспышки?
(Я попробовал «removedOnCompletion = NO;» и попытался установить affineTransform равным уменьшенному размеру после первого завершения, но мне не повезло.)
Любые советы приветствуются.
kb
Редактировать:
Отлично! Установка следующего:
shrink.fillMode = kCAFillModeForwards;
shrink.removedOnCompletion = NO;
Убрал перепрошивку. Спасибо, Бен!