iOS中UIWindow妙用(一) App 的密码保护功能

来源:互联网 发布:google chrome翻墙mac 编辑:程序博客网 时间:2024/04/27 17:32

 我们知道UiWindow 继承自UIView,所以UIWindow 除了具有UIView 的所有功能外,还有一些特有的属性方法,最常用的就是程序刚刚启动时,调用UIwindow的makeKeyAndVisible使整个程序可见。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    // Override point for customization after application launch.

    self.window = [[UIWindowalloc]initWithFrame:[UIScreenmainScreen].bounds];

    

    viewcontroller = [[ViewControlleralloc]init];

    

    self.window.rootViewController =viewcontroller;

    [self.windowmakeKeyAndVisible];

    return YES;

}




所以UIWindow的主要作用:

1,作为UIView 的最顶层容器,包含应用显示所需要的所有的UIView。

2.传递触摸消息和键盘事件给UIView


下面说一下跟这篇博客密切相关的一个属性  windowLevel


UIKIT_EXTERN constUIWindowLevel UIWindowLevelNormal;

UIKIT_EXTERN constUIWindowLevel UIWindowLevelAlert;

UIKIT_EXTERN constUIWindowLevel UIWindowLevelStatusBar;


其中UIWindowLevelNormal 的值使0, UIWindowLevelAlert 的值是2000,UIWindowLevelStatusBar的值是1000


下面开始我们今天要实现的功能

所谓密码保护,就是在App进入后台后,重新进入App中的时候需要输入一个通行的密码进入App这个密码可以和用户的登录密码不一致,用来保护用户的的个人信息,防止用户的手机不在身边的时候被人偷看,或者手机丢失后,敏感信息的泄漏,例如挖财,就有这样的功能,所以一般涉及到钱,敏感个人信息的App都应该有这样的功能

首先自定义个一个UIWindow 的子类

@interface PassWordInputWindow :UIWindow


+(PassWordInputWindow *)sharedInstance;


-(void)show;


@end


其中 +(PassWordInputWindow *)sharedInstance; 是一个创建单例的方法

具体实现如下:

+(PassWordInputWindow *)sharedInstance

{

   staticid sharedInstance =nil;

   staticdispatch_once_t onceToken;

   dispatch_once(&onceToken, ^{

        sharedInstance = [[selfalloc]initWithFrame:[UIScreenmainScreen].bounds];

        

        

    });

   return sharedInstance;

    

}


-(void)show

{

    self.windowLevel =UIWindowLevelAlert;//最顶层显示

    [selfmakeKeyWindow];

   self.hidden =NO;

}


具体的demo实现如下;

demo下载地址







2 0
原创粉丝点击