七、UIWindow

UIWindow是UIView的子类,主要作用是管理View,它本身由UIApplication管理,响应者查找的时候其实也通过了它。UIApplication又是UIReponder的子类。对于UIWindow其实主要要注意两个内容,一个是UIWindow 的层级(WindowLevel),层级用来控制显示结构,同层级的以添加的顺序为基础。

WindowLevel

设置这个属性,最高的可见,不一定是这三个取值。

UIKIT_EXTERN const UIWindowLevel UIWindowLevelNormal; // 0.000
UIKIT_EXTERN const UIWindowLevel UIWindowLevelAlert; // 1000.0
UIKIT_EXTERN const UIWindowLevel UIWindowLevelStatusBar // 2000.0

自己创建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

实现方式类似,将该UIWindow创建显示出来即可。UIWindow在被创建之后就会直接贴到屏幕上,但是如果想要处理键盘事件需要将它设置为keywindow。

你可能感兴趣的:(七、UIWindow)