我正在尝试交叉淡入淡出到新图像。这是一个添加了 UIVisualEffectView 的 UIImageView:
self.bgBlurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
self.visualEffectView = [[UIVisualEffectView alloc] initWithEffect:self.bgBlurEffect];
self.visualEffectView.frame = self.bgImageView.bounds;
[self.bgImageView addSubview:self.visualEffectView];
这是我尝试淡入新图像的方式:
UIImage *toImage = [UIImage imageNamed:imgName];
CABasicAnimation *crossFade = [CABasicAnimation animationWithKeyPath:@"contents"];
crossFade.duration = 2.5;
crossFade.delegate = self;
crossFade.fromValue = (id)self.bgImageView.image.CGImage;
crossFade.toValue = (id)toImage.CGImage;
[self.bgImageView.layer addAnimation:crossFade forKey:@"animateContents"];
self.bgImageView.image = toImage;
这实际上在模拟器中有效,但在设备(iPhone 6)上,图像完全变灰 2.5 秒,然后新图像立即出现。有想法该怎么解决这个吗?
编辑:这也不起作用:
[UIView transitionWithView:self.bgImageView
duration:2.5
options:UIViewAnimationOptionTransitionCrossDissolve
animations:^{
self.bgImageView.image = toImage;
} completion:nil];