如何雙擊home鍵,使app自帶毛玻璃效果,增強其安全性
阿新 • • 發佈:2019-01-28
一、ios應用程式的啟動邏輯
1、main.m檔案中的main是ios程式啟動的入口,main函式內部會呼叫UIApplicationMain函式,建立UIApplication物件和一個main runloop迴圈,當main runloop接收到事件後,會傳遞給AppDelegate物件去處理。
#import <UIKit/UIKit.h>
#import "AppDelegate.h"
int main(int argc, char * argv[]) {
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class ]));
}
}
2、UIApplication是一個單例物件,它在應用程式中只存在一份,也是ios應用程式啟動後建立的第一個物件。
二、AppDelegate中各方法的作用
應用程式啟動完畢就會呼叫該方法
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
return YES;
}
應用程式將要進入非活動狀態執行,在此期間,應用程式不接受訊息或事件,比如來電
- (void) applicationWillResignActive:(UIApplication *)application {
}
應用程式已經進入後臺執行
- (void)applicationDidEnterBackground:(UIApplication *)application {
}
應用程式將要進入活動狀態
- (void)applicationWillEnterForeground:(UIApplication *)application {
}
應用程式進入前臺,處於活動狀態
- (void)applicationDidBecomeActive:(UIApplication *)application {
}
應用程式將要退出,通常用於儲存書架和一些推出前的清理工作
- (void)applicationWillTerminate:(UIApplication *)application {
}
系統記憶體不足,需要進行清理工作
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application {
}
三、實現毛玻璃效果
@interface AppDelegate ()
@property (nonatomic, strong, nullable) UIVisualEffectView *visualEffectView;
@end
- (void)applicationDidEnterBackground:(UIApplication *)application {
UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
self.visualEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect];
self.visualEffectView.alpha = 1;
self.visualEffectView.frame = self.window.frame;
[self.window addSubview:self.visualEffectView];
// [UIView animateWithDuration:0.5 animations:^{
// self.visualEffectView.alpha = 1;
// }];
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
[UIView animateWithDuration:0.5 animations:^{
self.visualEffectView.alpha = 0;
} completion:^(BOOL finished) {
[self.visualEffectView removeFromSuperview];
}];
}