我正在尝试缩小图像,更改图像,然后将其放大。
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;
删除了闪烁。谢谢,本!
最佳答案
尝试将动画的 fillMode
设置为 kCAFillModeForwards
。这应该使项目保持在动画结束时的状态,而不是之前的状态。
关于iphone - 如何使用 iPhone UIImageView 链接缩放动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/617992/