¿Cómo aplicar el desenfoque a un UIView?

En este momento estoy construyendo una aplicación para iPhone que requiere difuminar una UIView completa. ¿Cómo puedo conseguir esto? He visto este marco , pero no creo que eso funcione con UIView. ¿Hay alguna manera alternativa de difuminar una UIView?

ACTUALIZACIÓN : compruebe mi respuesta actualizada a continuación, agregando más relevancia con la llegada de iOS 7 e iOS 8.

Esto debería funcionar. Comenté en el código para ayudarlo a comprender lo que está sucediendo:

//To take advantage of CIFilters, you have to import the Core Image framework #import  //Get a UIImage from the UIView UIGraphicsBeginImageContext(myView.bounds.size); [myView.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); //Blur the UIImage with a CIFilter CIImage *imageToBlur = [CIImage imageWithCGImage:viewImage.CGImage]; CIFilter *gaussianBlurFilter = [CIFilter filterWithName: @"CIGaussianBlur"]; [gaussianBlurFilter setValue:imageToBlur forKey: @"inputImage"]; [gaussianBlurFilter setValue:[NSNumber numberWithFloat: 10] forKey: @"inputRadius"]; CIImage *resultImage = [gaussianBlurFilter valueForKey: @"outputImage"]; UIImage *endImage = [[UIImage alloc] initWithCIImage:resultImage]; //Place the UIImage in a UIImageView UIImageView *newView = [[UIImageView alloc] initWithFrame:self.view.bounds]; newView.image = endImage; [self.view addSubview:newView]; 

Si tiene alguna pregunta sobre el código, simplemente déjela en los comentarios.

Nota: CIGaussianBlur no está presente en iOS a partir de 5.1, por lo que debe encontrar una forma diferente de difuminar la vista de los dispositivos 5.x + (Gracias a @BradLarson por este consejo). La respuesta aceptada en esta pregunta parece prometedora como reemplazo, al igual que esta biblioteca .

Desde el lanzamiento de iOS 7, esta pregunta ha recibido muchos éxitos y pensé que debería hacer un seguimiento de lo que terminé haciendo.

Personalmente borré la imagen en ese momento con Photoshop, pero hay muchas grandes bibliotecas de terceros disponibles que hacen borrosidad dinámica y estática , aquí hay un par:

Quería publicar esto porque ya no es necesario que tome capturas de pantalla de marcos o pantallas individuales.

iOS 8: con la próxima versión de iOS 8, Apple ha incluido una UIView borrosa, UIVisualEffectView ( https://developer.apple.com/documentation/uikit/uivisualeffectview )

En iOS 8 puedes usar UIVisualEffectView para obtener Vistas borrosas. Ver: https://developer.apple.com/documentation/uikit/uivisualeffectview

Simplemente resuelto usando este código.

 UIToolbar *toolBar = [[UIToolbar alloc]initWithFrame:yourView.bounds]; toolBar.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; if ([[[UIDevice currentDevice] systemVersion] doubleValue] >= 7.0) { toolBar.barTintColor = nil; toolBar.translucent = YES; toolBar.barStyle = UIBarStyleBlack; } else [toolBar setTintColor:[UIColor colorWithRed:5 green:31 blue:75 alpha:1]]; [yourView insertSubview:toolBar atIndex:0]; 

La forma más sencilla de difuminar una vista es agregar UIToolbar, simplemente cambie el valor alfa para cambiar el desenfoque.

 self.toolbar = [[UIToolbar alloc]initForAutoLayout]; [self.view addSubview:self.toolbar]; [self.toolbar autoPinEdgeToSuperviewEdge:ALEdgeLeft withInset:0]; [self.toolbar autoPinEdgeToSuperviewEdge:ALEdgeRight withInset:0]; [self.toolbar autoPinEdgeToSuperviewEdge:ALEdgeTop withInset:NAVBAR_HEIGHT]; [self.toolbar autoPinEdgeToSuperviewEdge:ALEdgeBottom withInset:0]; self.toolbar.alpha = 0.5;