首页 > 代码库 > iOS 7 Pushing the Limits Notes - create a layer like notification center's or control center's background

iOS 7 Pushing the Limits Notes - create a layer like notification center's or control center's background

Problem:

How to create a layer that looks like your notification center‘s or control center‘s background

 

Solution:

Using UIImage+ImageEffects to Create a Blurred Popup Layer

 

Code Fragments:

// create the layerself.layer = [CALayer layer];self.layer.frame = CGRectMake(80, 100, 160, 160);[self.view.layer addSublayer:self.layer];// Take the screenshotfloat scale = [UIScreen mainScreen].scale;UIGraphicsBeginImageContextWithOptions(self.view.frame.size, YES, scale);[self.view drawViewHierarchyInRect:self.view.frame afterScreenUpdates:NO];__block UIImage *image = UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();// Crop the screenshotCGImageRef imageRef = CGImageCreateWithImageInRect(image.CGImage,CGRectMake(self.layer.frame.origin.x * scale,self.layer.frame.origin.y * scale,self.layer.frame.size.width * scale,self.layer.frame.size.height * scale));image = [UIImage imageWithCGImage:imageRef];// Apply the effectimage = [image applyBlurWithRadius:50.0ftintColor:[UIColor colorWithRed:0 green:1 blue:0 alpha:0.1]saturationDeltaFactor:2maskImage:nil];// assign it to the new layer‘s contentsself.layer.contents = (__bridge id)(image.CGImage);