我创建一个UIImageView并添加到VC UIView,然后我用animatedImageWithImages:duration:
当我执行代码时,它正常工作。它显示图像动画。但是当我推送到下一个VC并且在向后滑动的过程中,我发现UIImageView没有显示任何内容。 手指离开屏幕的那一刻,一切恢复正常。
这是我的代码:
- (void)viewDidLoad {
[super viewDidLoad];
UIImageView *imgView = [[UIImageView alloc] init];
imgView.backgroundColor = [UIColor orangeColor];
imgView.frame = CGRectMake(20, 200, 80, 80);
[self.view addSubview:imgView];
NSArray *imgs = @[[UIImage imageNamed:@"img1"],[UIImage imageNamed:@"img2"]];
imgView.image = [UIImage animatedImageWithImages:imgs duration:0.5];
}
我注意到imageView有CAKeyframeAnimation。我想runmode和CAKeyframeAnimation的冲突。
SDWebImage也有同样的问题。因为它也使用创建UIImage的方法。我认为重点是animatedImageWithImages方法:duration:和CAKeyframeAnimation。
有谁知道解决方案?非常感谢。
手指离开屏幕的事件将使imageView正常显示。为什么以及如何解决?
答案 0 :(得分:0)
您可以使用UIImageView其他方法设置图像和动画持续时间,如下所示
UIImageView *imgView = [[UIImageView alloc] init];
imgView.backgroundColor = [UIColor orangeColor];
imgView.frame = CGRectMake(20, 200, 80, 80);
NSArray *imgs = @[[UIImage imageNamed:@"img1"],[UIImage imageNamed:@"img2"]];
[imgView setAnimationImages:imgs];
[imgView setAnimationDuration:1];
[imgView setAnimationRepeatCount:HUGE_VAL];
[imgView startAnimating];
[self.view addSubview:imgView];