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; }];