雙擊Home鍵實(shí)現(xiàn)模糊效果

似乎目前所見(jiàn)這樣的效果都是在金融類(lèi)App中,畢竟錢(qián)真的很重要??。在此嘗試一下,反正閑著也是閑著(?)。

可知雙擊Home鍵或者應(yīng)用退到后臺(tái)的時(shí)候,都會(huì)經(jīng)歷以下方法:

- (void)applicationWillResignActive:(UIApplication *)application { }

所以在這里添加毛玻璃效果,并且在

- (void)applicationDidBecomeActive:(UIApplication *)application { }

方法中刪除此效果。

步驟在此

  • 獲取當(dāng)前VC
- (UIViewController *)currentVC {
    
    UIViewController *currentVC = nil;
    
    if (self.window.windowLevel != UIWindowLevelNormal) {
        
        NSArray *windows = [[UIApplication sharedApplication] windows];
        for (UIWindow *window in windows) {
            
            if (window.windowLevel == UIWindowLevelNormal) {
                
                self.window = window;
                break;
            }
        }
    }
    
    UIView *frontView = [[self.window subviews] lastObject];
    id nextResponder = [frontView nextResponder];
    
    if ([nextResponder isKindOfClass:[UIViewController class]]) {
        
        currentVC = nextResponder;
    } else {
        
        currentVC = self.window.rootViewController;
    }
    
    return currentVC;
}
  • 截取當(dāng)前視圖
- (UIImage *)snapShot:(UIView *)view {
    
    UIGraphicsBeginImageContextWithOptions(view.bounds.size, YES, 0);
    [view drawViewHierarchyInRect:view.bounds afterScreenUpdates:YES];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    
    return image;
}

  • 添加毛玻璃效果
- (void)applicationWillResignActive:(UIApplication *)application {
    
    NSLog(@"applicationWillResignActive");
    
    // 毛玻璃效果
    UIView *view = [[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds];
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:[UIScreen mainScreen].bounds];
    UIViewController *vc = [self currentVC];
    imageView.image = [self snapShot:vc.view];
    
    UIBlurEffect *blur = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
    UIVisualEffectView *effectView = [[UIVisualEffectView alloc] initWithEffect:blur];
    effectView.frame = [UIScreen mainScreen].bounds;
    
    [imageView addSubview:effectView];
    view.tag = 1000;
    [view addSubview:imageView];
    [self.window addSubview:view];
}
  • 在應(yīng)用DidBecomeActive時(shí)去除效果
- (void)applicationDidBecomeActive:(UIApplication *)application {
    
    for (UIWindow *window in [[UIApplication sharedApplication] windows]) {
        
        if (window.windowLevel == UIWindowLevelNormal) {
            
            UIView *view = [window viewWithTag:1000];
            [view removeFromSuperview];
        }
    }
}

以上。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,334評(píng)論 4 61
  • 缺口 文/雪婷 夜無(wú)眠,獨(dú)自站在陽(yáng)臺(tái)上。 抬頭數(shù)星星,皎潔的月光灑向大地。 光亮,驚動(dòng)了樓下的黑貓。 劍般的速度射...
    凌韻雪婷閱讀 157評(píng)論 0 0
  • 在彌漫著沐浴芳香和夾雜著些許玫瑰香料的房間里面,你絕對(duì)看不到一個(gè)美麗少婦穿著性感睡衣在你面前搔首弄姿,極盡誘惑,你...
    宅宅公子閱讀 294評(píng)論 0 0

友情鏈接更多精彩內(nèi)容