UIWindow 使用介绍

原创 2018年04月17日 11:49:04

一、简介

    UIWindos可以理解为一个app的窗口,作为Controller的容器,一个App至少拥有一个window,且只有一个keyWindow,也可以有多个Window.

   keyWindow:指当前的主window,屏幕的最外层的window,所以有多个window时需要遍历获取目的window.

   window可以不占满全屏幕,可以在屏幕的某个frame位置。

二、UIWindowLevel介绍

    window显示层级规则:由于window的显示层级是根据windowLevel来决定的,level高的window显示在上面,同level的keyWindow显示在前面。

    系统定义的level值。

//CFFloat值 UIWindowLevelNormal = 0.0  |  UIWindowLevelStatusBar = 1000.0  | UIWindowLevelAlert = 2000.0  | 

三、UIWindow属性方法


需求:添加一个全局按钮

思想:全局添加一个按钮大小的window,添加点击和拖动手势。

注意:

1.创建一个window之后,需要设置rootViewContorller

2.一般的主window,如果需要显示,则需要创建makeKeyAddVisibel或者将isHidden置为false

疑问?

1.如果没有在AppDelegate中添加全局变量,有时候在AppDelegate之外添加会失败,为什么?

2.怎么移除创建的window,是设置为hidden吗?

扩展

决绝直接更换rootViewController造成的图层叠加问题。


在AppDelegate中定义切showViewContorller:方法,在里面实现rootViewController的更换,在需要切换的页面调用代理实例进行切换。

示例代码[OC]

-(void)resetRootController:(UIViewController *)controller{
    UIWindow *window = self.window;
    [self.window.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)]; //每一个视图都执行移除
    self.window.rootViewController = nil;
    [self.window resignKeyWindow];
    [self.window removeFromSuperview];
    [window setRootViewController:controller];
    [window makeKeyWindow];
}

版权声明:本文为博主原创文章,转载请注明 https://blog.csdn.net/qq_14920635/article/details/79971844

UIWindow的介绍和使用

•UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow •iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的vi...
  • suiyu1992
  • suiyu1992
  • 2016-07-30 16:37:54
  • 241

关于UIWindow,使用小记

UIWindow是可以自建很多的。默认初始只有一个window。 UIStatusbar 、 UIAlertView 、UIActionSheet 还有键盘,都属于UIWindow类。 通过  [U...
  • icash
  • icash
  • 2013-11-29 15:56:10
  • 15617

UIWindow使用介绍

本人录制技术视频地址:https://edu.csdn.net/lecturer/1899 欢迎观看。我们在平时的开发过程中,也许忽略了UIWindow。因为系统已经帮我们处理了它的相关操作。比如在程...
  • sinat_27706697
  • sinat_27706697
  • 2015-05-17 08:05:10
  • 2322

UIWindow、UIView以及CALayer之间的关系

UIWindow、UIView以及CALayer之间的关系
  • aaaa99996666
  • aaaa99996666
  • 2016-05-11 20:46:35
  • 709

swift中UIWindow的使用

https://github.com/potato512/SYSwiftLearning UIWindow继承自UIView, 用来管理和协调各种视图。提供一个区域来显示视图, 将事件e...
  • potato512
  • potato512
  • 2016-10-28 15:04:36
  • 2035

iOS之UIWindow、UINavigationController与UITabBarController的区别

转载自:http://www.cnblogs.com/YouXianMing/p/3816080.html 虽然每次你都用UINavigationController与UIWindow,但你...
  • yuxikuo_1
  • yuxikuo_1
  • 2015-01-22 15:53:12
  • 854

当前uistatusBar前景为白色,当增加uiwindow后,uistatusBar变为黑色的解决方法

问题:当程序的statusbar的字体颜色被navigationbar的背景色决定的时候,比如当navigationbar有背景色,则statusbar的字体颜色为白色,当没有navigationba...
  • Roger_Jin
  • Roger_Jin
  • 2016-01-13 15:59:57
  • 786

IOS 之 UIWindow 详解

一、UIWindow特点(1)UIWindow 是一种特殊的 UIView,通常在一个 app 中至少会有一个 UIWindow;(2)iOS程序启动完毕后,创建的第一个视图控件就是 UIWindow...
  • huangfei711
  • huangfei711
  • 2016-12-10 11:20:48
  • 1591

【iOS】UIWindow中文详解

1.window     每个iOS应用都会有至少一个window,这个window就是UIWindow的实例,有些应用会有多个window。window会有如下几个职责: 它包含了应用中的可见内容...
  • gang544043963
  • gang544043963
  • 2016-09-18 19:38:45
  • 736

【iOS界面开发】UIWindow屏幕旋转自适应

屏幕上显示的每个视图都被包含于UIWindow对象,app内每个window之间相互独立。app接收到的事件都最先路由到合适的window对象,再由此派发到合适的视图。Windows与ViewCont...
  • freeWayWalker
  • freeWayWalker
  • 2017-09-17 22:01:04
  • 317
收藏助手
不良信息举报
您举报文章:UIWindow 使用介绍
举报原因:
原因补充:

(最多只允许输入30个字)