1
我正在嘗試淡入淡出的新圖像。這是一個UIImageView已在一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];
這是行不通的。 'self.bgImageView.image = toImage;'立即設置新的圖像。然後在2.5秒後變得模糊。 – soleil
@soleil嘗試將visualEffectView添加到您添加bgImageView的同一視圖中,並確保它位於bgImageView的上方,以便模糊它(您還需要爲它提供相同的框架,以便覆蓋它)。我試過了,它爲我工作。 – Artal