ios毛玻璃效果

来源:互联网 发布:mac安装win10不要u盘 编辑:程序博客网 时间:2024/05/28 06:08
#import "ViewController.h"#import "UIImage+ImageEffects.h"@interface ViewController ()
// 点击手势@property (strong, nonatomic) IBOutlet UITapGestureRecognizer *tapGesture;
// 背景图片@property (weak, nonatomic) IBOutlet UIImageView *bgImage;
// 图层@property (strong, nonatomic) CALayer *layer;@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];
    self.bgImage.userInteractionEnabled = YES;    [self.tapGesture addTarget:self action:@selector(tapBacegroundImage)];}- (void)tapBacegroundImage{    self.layer = [CALayer layer];    self.layer.frame = CGRectMake(0, 0, CGRectGetWidth(self.bgImage.frame), CGRectGetHeight(self.bgImage.frame));    [self.view.layer addSublayer:self.layer];        float scale = [UIScreen mainScreen].scale;
// <span style="white-space:pre"></span>0.0表示 <span style="font-family: Arial, Helvetica, sans-serif;">[UIScreen mainScreen].scale</span>
    UIGraphicsBeginImageContextWithOptions(self.view.frame.size, YES, 0.0);
// 用于毛玻璃的截屏    [self.view drawViewHierarchyInRect:self.view.frame afterScreenUpdates:NO];    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();    UIGraphicsEndImageContext();        CGImageRef imageRef = CGImageCreateWithImageInRect(image.CGImage, CGRectMake(CGRectGetMinX(self.layer.frame) * scale, CGRectGetMinY(self.layer.frame) * scale, CGRectGetWidth(self.layer.frame) * scale, CGRectGetHeight(self.layer.frame) * scale));    image = [UIImage imageWithCGImage:imageRef];    CGImageRelease(imageRef);        image = [image applyBlurWithRadius:50.0f tintColor:[UIColor colorWithWhite:1 alpha:0.1] saturationDeltaFactor:1.0f maskImage:nil];    self.layer.contents = (__bridge id)(image.CGImage);    }

0 0
原创粉丝点击