xCode – UIVisualEffectViewanimation

animationVisualEffetView时遇到问题。 这里是我声明它的代码。

UIBlurEffect* blur = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]; effectView = [[UIVisualEffectView alloc] initWithEffect:blur]; effectView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; effectView.frame = self.bounds; self.layer.borderWidth = 1; [self addSubview:effectView]; 

当animation超级景观,使其成长,视觉效果跟随superview的animation,但是当我想要减less它,视觉效果立即消失,使结果非常丑陋^^这里是我animationsuperview(这里叫recherche)

 [UIView animateWithDuration:0.3f delay:0.0f options:UIViewAnimationOptionTransitionNone animations:^{ CGRect f = recherche.frame; f.size.height = 0; [recherche setFrame:f]; } completion:^(BOOL finished){ [recherche removeFromSuperview]; recherche = nil; }]; 

这就是我在做logging时消失的东西。 白色方块似乎是效果视图,因为如果我更改UIBlurEffectStyle,颜色会改变。 但模糊效果缺失x) 截图

从上面的理解中,我发现你只需要重置效果视图的高度来达到你想要的效果。

在animation块中添加代码:

检查并告诉我,是否满足您的期望。

 [UIView animateWithDuration:0.3f delay:0.0f options:UIViewAnimationOptionTransitionNone animations:^{ CGRect f = recherche.frame; f.size.height = 0; [recherche setFrame:f]; // Add this lines CGRect effectViewFrame = effectView.frame; effectView.size.height = 0; effectView.frame = effectViewFrame; } completion:^(BOOL finished){ [recherche removeFromSuperview]; recherche = nil; }];