Para que un UIVibrancyEffect borroso funcione, ¿tenemos que agregarlo como una vista separada para una ContentView de UIBlurEffect?

Estoy intentando usar UIVibrancyEffect para agregar una superposition vibrante borrosa similar a Control Center en iOS 7/8. Traté de crear un UIVisualEffectView con el UIVibrancyEffect luego UIVibrancyEffect eso a mi vista, pero el resultado no es borroso, simplemente se hace vibrante.

Para que se difumine parece que tengo que agregar la vista de efecto vibrante a la vista de contenido de una vista de efecto de desenfoque:

 UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark]; UIVisualEffectView *effectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect]; effectView.translatesAutoresizingMaskIntoConstraints = NO; // Add the blur effect to an image view. [self.imageView addSubview:effectView]; [self.imageView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[v]|" options:0 metrics:nil views: @{ @"v" : effectView }]]; [self.imageView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[v]|" options:0 metrics:nil views: @{ @"v" : effectView }]]; UIVibrancyEffect *vibrance = [UIVibrancyEffect effectForBlurEffect:blurEffect]; UIVisualEffectView *effectView2 = [[UIVisualEffectView alloc] initWithEffect:vibrance]; effectView2.translatesAutoresizingMaskIntoConstraints = NO; // Add the vibrance effect to our blur effect view [effectView.contentView addSubview:effectView2]; [effectView.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[v]|" options:0 metrics:nil views: @{ @"v" : effectView2 }]]; [effectView.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[v]|" options:0 metrics:nil views: @{ @"v" : effectView2 }]]; self.test = [[UILabel alloc] initWithFrame:CGRectZero]; self.test.translatesAutoresizingMaskIntoConstraints = NO; self.test.text = @"TEST"; self.test.textColor = [UIColor whiteColor]; self.test.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:30]; self.test.textAlignment = NSTextAlignmentCenter; // Add label to the vibrance content view. [effectView2.contentView addSubview:self.test]; [effectView2.contentView addConstraint:[NSLayoutConstraint constraintWithItem:self.test attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:effectView2.contentView attribute:NSLayoutAttributeCenterX multiplier:1.0 constant:0.0]]; [effectView2.contentView addConstraint:[NSLayoutConstraint constraintWithItem:self.test attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:effectView2.contentView attribute:NSLayoutAttributeCenterY multiplier:1.0 constant:0.0]]; 

( Crédito a Justin Williams )

Este es el caso Si es así, ¿por qué tengo que pasar el efecto de desenfoque al crear el UIVibrancyEffect ? ¿Somos capaces de tener vistas vibrantes y sin brillos? Si es así, no puedo lograr que funcione, ni veo por qué estás pasando un borrón.

Tomando las preguntas en su último párrafo en order: Sí; porque eso es para eso; no.

El único propósito de un efecto de vitalidad es actuar en armonía con un efecto de desenfoque subyacente, por lo que debe inicializar el efecto de vitalidad con el efecto de desenfoque de la vista de efecto visual borrosa que se colocará detrás de él. Vea el video 221 de WWDC 2014, más el encabezado UIVisualEffectView.h , para mucha más información.