UIWindow是UIView的子類,主要作用是管理View朵栖,它本身由UIApplication管理颊亮,響應(yīng)者查找的時(shí)候其實(shí)也通過了它。UIApplication又是UIReponder的子類混槐。對(duì)于UIWindow其實(shí)主要要注意兩個(gè)內(nèi)容编兄,一個(gè)是UIWindow 的層級(jí)(WindowLevel)轩性,層級(jí)用來控制顯示結(jié)構(gòu)声登,同層級(jí)的以添加的順序?yàn)榛A(chǔ)。
WindowLevel
設(shè)置這個(gè)屬性揣苏,最高的可見悯嗓,不一定是這三個(gè)取值。
UIKIT_EXTERN const UIWindowLevel UIWindowLevelNormal; // 0.000
UIKIT_EXTERN const UIWindowLevel UIWindowLevelAlert; // 1000.0
UIKIT_EXTERN const UIWindowLevel UIWindowLevelStatusBar // 2000.0
自己創(chuàng)建window
- (void)canlceWindow {
_uiwindow.hidden = YES;
_uiwindow = nil;
}
- (IBAction)tapAction:(id)sender {
_uiwindow = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen] bounds]];
_uiwindow.windowLevel = UIWindowLevelNormal;
_uiwindow.backgroundColor = [UIColor redColor];
_uiwindow.hidden = NO;
UITapGestureRecognizer *gesture = [[UITapGestureRecognizer alloc]init];
[gesture addTarget:self action:@selector(canlceWindow)];
[_uiwindow addGestureRecognizer:gesture];
}
繼承UIWindow
實(shí)現(xiàn)方式類似卸察,將該UIWindow創(chuàng)建顯示出來即可脯厨。UIWindow在被創(chuàng)建之后就會(huì)直接貼到屏幕上,但是如果想要處理鍵盤事件需要將它設(shè)置為keywindow坑质。