Je voudrais étendre sur rckoenes' réponse:
Comme l'a souligné, vous pouvez créer cet effet par:
- Convertir le sous-jacent UIView à une UIImage
- Le flou de la UIImage
- Définir la UIImage comme arrière-plan de votre point de vue.
Ressemble à beaucoup de travail, mais en réalité c'est en fait assez simple:
1. Créer une catégorie de UIView et ajoutez la méthode suivante:
-(UIImage *)convertViewToImage
{
UIGraphicsBeginImageContext(self.bounds.size);
[self drawViewHierarchyInRect:self.bounds afterScreenUpdates:YES];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
2. Faire une image de la vue courante et flou en utilisant Apple l'Image de la catégorie d'Effet (télécharger)
UIImage* imageOfUnderlyingView = [self.view convertViewToImage];
imageOfUnderlyingView = [imageOfUnderlyingView applyBlurWithRadius:20
tintColor:[UIColor colorWithWhite:1.0 alpha:0.2]
saturationDeltaFactor:1.3
maskImage:nil];
3. Définir comme arrière-plan de votre superposition.
-(void)viewDidLoad
{
self.view.backgroundColor = [UIColor clearColor];
UIImageView* backView = [[UIImageView alloc] initWithFrame:self.view.frame];
backView.image = imageOfUnderlyingView;
backView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.6];
[self.view addSubview:backView];
}