zoukankan      html  css  js  c++  java
  • iOS 模糊化效果 ANBlurredImageView的使用

    /**

     *  背景模糊化效果

     */

    - (void)resetBlurView

    {

        ANBlurredImageView *blurView = self.commentBackground; // 创建ANBlurredImageView类型的属性

        

        blurView.baseImage = [self screenShots]; 

        blurView.blurAmount = 0.3; // 设置透明度

        

        __weak typeof (self) weakP = self;

        BLOCK_BACKGROUND(^() {

            [blurView generateBlurFramesWithCompletion:^{

                BLOCK_MAIN_THREAD(^() {

                    

                    [weakP showBackgroundViewAnimation:YES]; 

                    

                });

            }];

        });

    }

     

     

    -(UIImage *)screenShots

    {

        CGSize imageSize = [[UIScreen mainScreen] bounds].size;

        

        UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0);

        

        CGContextRef context = UIGraphicsGetCurrentContext();

        

        for (UIWindow * window in [[UIApplication sharedApplication] windows]) {

            if (![window respondsToSelector:@selector(screen)] || [window screen] == [UIScreen mainScreen]) {

                CGContextSaveGState(context);

                CGContextTranslateCTM(context, [window center].x, [window center].y);

                CGContextConcatCTM(context, [window transform]);

                CGContextTranslateCTM(context, -[window bounds].size.width*[[window layer] anchorPoint].x, -[window bounds].size.height*[[window layer] anchorPoint].y);

                [[window layer] renderInContext:context];

                

                CGContextRestoreGState(context);

            }

        }

        

        UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

        

        UIGraphicsEndImageContext();

        

        return image;

    }

     

     

    - (void)showBackgroundViewAnimation:(BOOL)show

    {

        __weak typeof (self) weakP = self;

        

        if (show) {

            weakP.commentBackground.hidden = NO;

            [weakP.commentBackground blurInAnimationWithDuration:self.keyboardAppear];

            

        } else {

            

            [weakP.commentBackground blurOutAnimationWithDuration:self.keyboardAppear completion:^{

                weakP.commentBackground.hidden = YES;

            }];

        }

     

    }

  • 相关阅读:
    C#与面向对象编程语言
    Windows Communication Fundation(WCF)的安装和一些疑惑
    Windows Communication Foundation入门(Part Two)
    Design & Pattern团队公告
    解决方案、项目、程序集、命名空间
    你注意到了吗?
    我的个人主页
    PetShop与设计
    CKEditor/CKFinder升级心得
    [转贴]基于UDP、TCP协议的C#网络编程之一
  • 原文地址:https://www.cnblogs.com/youmei11/p/4769488.html
Copyright © 2011-2022 走看看