iOS 新窗口在最上层

时间:2024-07-27 23:06:32

有的时候需要弹出一个UIView 在整个视图的最上方,使用 [self.view addsubview : view] 一般就可以了,但是这样不严谨,因为这是一个tableview,那么这个view 会跟随tableview滑动,所以我们要把这个view 添加到UIWindow 上面.

 //键盘会挡住窗口
UIWindow * window1 = [UIApplication sharedApplication].keyWindow;
UIView * view1 = [[UIView alloc]initWithFrame:CGRectMake([UIScreen mainScreen].bounds.size.width/-, [UIScreen mainScreen].bounds.size.height/ - , , )];
view1.backgroundColor = [UIColor redColor];
[window1 addSubview:view1]; //如果键盘已经存在,那么窗口挡住键盘,
//如果窗口已经存在,再弹出键盘,那么键盘挡住窗口,除非监听键盘的活动,调整窗口的在数组中的位置
UIWindow * window2 = [[[UIApplication sharedApplication] windows] lastObject];
UIView * view2 = [[UIView alloc]initWithFrame:CGRectMake([UIScreen mainScreen].bounds.size.width/-, [UIScreen mainScreen].bounds.size.height/ - , , )];
view2.backgroundColor = [UIColor yellowColor];
[window2 addSubview:view2];