2015-04-24 2 views
2

J'ajoute flou effectt à mon avis comme celui-ci:effet de flou - ObjC

UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark]; 
UIVisualEffectView *blurEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect]; 
[blurEffectView setFrame:self.view.bounds]; 
[self.view addSubview:blurEffectView]; 

Mais comment puis-je désactiver/supprimer le flou?

+0

Si vous ne voulez pas de flou, pourquoi ajouter une vue de flou? –

+0

Je veux un flou en un point ... – opengl

Répondre

2

Depuis UIVisualEffectViewUIView sous-classes, comme vous avez ajouté la vue de l'effet visuel self.view comme un sous-vue cacher simplement (la propriété UIView caché) ou le supprimer des sous-vues.

Dans votre cas, j'ajouterais une variable d'instance qui référence le blurEffectView dans la vue, de sorte que vous pouvez simplement définir sa propriété cachée sur true ou false si besoin est.

0

Il peut y avoir un cas où le blurView a subViews (comme dans mon cas) et basé sur certaines conditions blurEffect devrait être activé/désactivé.

Dans ce cas, vous ne pouvez pas masquer le blurView puisqu'il est subViews sera également caché.

Solution: Définir une couleur de fond (selon votre fond d'écran prévu) de l'blurView alpha 1. Cela donne l'effet de la suppression BlurEffect.

blurView.backgroundColor = UIColor.init(colorLiteralRed: 0.960, green: 0.960, blue: 1, alpha: 1)