Le flou de l'écran avec iOS 7 de l'instantané de l'API

Je crois que le NDA est en bas, donc je peux poser cette question. J'ai une UIView sous-classe:

BlurView *blurredView = ((BlurView *)[self.view snapshotViewAfterScreenUpdates:NO]);
blurredView.frame = self.view.frame;
[self.view addSubview:blurredView];

Il fait son travail jusqu'à présent dans la capture de l'écran, mais maintenant je veux le flou de ce point de vue. Exactement comment dois-je aller à ce sujet? De ce que j'ai lu, j'ai besoin de capturer le contenu actuel de la vue (?!) et la convertir en CIImage (non?) et ensuite, appliquez une CIGaussianBlur à elle et la ramener sur la vue.

Comment dois-je faire exactement?

P. S. Le point de vue qui n'est pas animé, donc ça devrait être OK performance sage.

EDIT: Voici ce que j'ai jusqu'à présent. Le problème est que je ne peux pas saisir un instantané d'une UIImage, j'obtiens un écran noir. Mais si j'ajoute le point de vue comme une sous-vue directement, je peux voir la capture est là.

//Snapshot
UIView *view = [self.view snapshotViewAfterScreenUpdates:NO];

//Convert to UIImage
UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 0.0);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

//Apply the UIImage to a UIImageView
BlurView *blurredView = [[BlurView alloc] initWithFrame:CGRectMake(0, 0, 500, 500)];
[self.view addSubview:blurredView];
blurredView.imageView.image = img;

//Black screen -.-

BlurView.m:

- (id)initWithFrame:(CGRect)frame {
    self = [super initWithFrame:frame];

    if (self) {
        //Initialization code
        self.imageView = [[UIImageView alloc] init];
        self.imageView.frame = CGRectMake(20, 20, 200, 200);
        [self addSubview:self.imageView];
    }
    return self;
}
Il y a une UIImageView dans la catégorie WWDC2013 exemple de code.
J'ai vérifié, mais il utilise une image de l'actif comme une source, mais j'ai besoin d'utiliser un instantané. Qui je ne peux pas comprendre.

OriginalL'auteur Nikolay Dyankov | 2013-09-22