首页
学习
活动
专区
工具
TVP
发布
您找到你想要的搜索结果了吗?
是的
没有找到

IOS开发系列——UIView专题之一:UIWindow

UIView专题 1UIWindow 1.1UIWindow简介 UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow。...一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWindow。也就说,没有UIWindow,就看不见任何UI界面。...补充:UIWindow是创建的第一个视图控件(创建的第一个对象是UIapplication)如下图: 添加 先创建UIwindow,再创建控制器,创建控制器的view,然后将控制器的view添加到UIWindow...3.在有storyboard的项目中,UIWindow是如何创建的? 为什么创建一个storyboard,没有看到创建uiwindow的过程? 它其实是把创建UIWindow的过程给屏蔽起来了。...提示:如果某个UIWindow内部的文本框不能输入文字,可能是因为这个UIWindow不是keyWindow。 (3)view.window获得某个UIView所在的UIWindow

46930

iOS四大对象之UIWindow及四大对象之间的关系1. UIWindow使用纯代码加载根控制器2. UIWindow的创建过程3. 四大对象之间的关系

UIWindow/使用纯代码加载根控制器 UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow -iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的...view,最后将控制器的view添加到UIWindow上,于是控制器的view就显示在屏幕上了 创建的第一个对象是:UIApplication 一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWindow...也就说,没有UIWindow,就看不见任何UI界面 1.1 手工创建一个UIWindow - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions...:(NSDictionary *)launchOptions { //创建窗口,根据屏幕大小设置 UIWindow *window = [[UIWindow alloc] initWithFrame...主窗口同一时刻只能有一个UIWindow *keyW = application.keyWindows; 1.2 对window进行操作 // 让当前UIWindow变成keyWindow,并显示出来

1.6K30

基础篇-UIApplication、UIWindow以及程序的启动流程看我就够了

UIWindow是一种特殊的UIView,通常在一个程序中只会有一个UIWindow,但可以手动创建多个UIWindow,同时加到程序里面。...iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的View,最后将控制器的View添加到UIWindow上,于是控制器的View就显示在屏幕上了。...一个iOS程序之所以能显示在屏幕上,完全是因为它有UIWindow,也就是说,没有UIWindow就看不到任何UI界面。 状态栏和键盘都是特殊的UIWindow。...那么UIWindow是如何将View显示到屏幕上的呢? 这里有三个重要的对象UIScreen,UIWindow,UIView。 UIScreen对象识别物理屏幕连接到设备。...UIWindow的层级 UIWindow是有层级的,层级高的显示在最外面,当层级相同时,越靠后调用的显示在外面。

1.5K20

iOS开发·UIWindow与视图层级调整技巧(makeKeyWindow,resignKeyWindow,makeKeyAndVisible,keyWindow,windowLevel,UIWind

如果不想影响原来的UIWindow,可以考虑新建一个UIWindow并覆盖原来的UIWindow,并往新建的UIWindow上添加各种手势相关的视图及控制器。...但在手势验证完后,务必销毁这个自定义的UIWindow,否则可能导致看不见的UIWindow越积越多。 1....如果,之前UIWindow的hidden = NO,设置新UIWindow的hidden将旧UIWindow覆盖后,旧UIWindow的hidden属性依旧为NO。...上述代码会将UIWindow绝对隐藏,不管有没其他UIWindow覆盖。当也没有其它非隐藏的UIWindow的时候,APP屏幕完全黑屏。...显示最上层的UIWindow以最后执行过该代码的UIWindow为准。 2).

7.5K10

iOS 事件传递和处理

App内:子线程接收事件->主线程封装事件->UIWindow启动hitTest确定目标视图->UIApplication开始发送事件->touch事件开始回调。...UIKit会从UIWindow开始寻找目标视图,先调用UIWindow的hitTest方法询问是否有响应的视图,hitTest方法首先会先调用UIWindow的pointInside方法询问是否在点击范围内...a.如果pointInside方法返回NO,则证明UIWindow无法响应该事件,hitTest方法会马上返回nil; b.如果pointInside方法返回YES,则证明UIWindow可以响应该事件...,hitTest方法会接着调用UIWindow子视图的hitTest方法。...b1.如果子视图hitTest方法如果有返回视图,则UIWindow的hitTest方法会返回该视图; b2.如果所有子视图hitTest方法都没有返回视图,则UIWindow的hitTest方法会返回自己

1.3K20

程序启动的完整过程

程序启动完毕的时候,就会调用代理的application:didFinishLaunchingWithOptions:方法 在application:didFinishLaunchingWithOptions:中创建UIWindow...创建和设置UIWindow的rootViewController 显示窗口 3.根据Info.plist获得最主要storyboard的文件名,加载最主要的storyboard(有storyboard...) 创建UIWindow 创建和设置UIWindow的rootViewController 显示窗口 窗口(UIWindow) 一种特殊的UIView,一个app中至少有一个UIWindow iOS...启动完毕后创建的第一个视图就是UIWindow 接着创建控制器,再把控制器的View加到UIWindow上显示出来 在- didFinishLaunchingWithOptions:方法中代码创建控制器...//创建窗口 self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; //创建跟控制器 UIViewController

1.4K150

UIViewController生命周期

与KeyWindow 1、UIWindow 在iOS App中,UIWindow是最顶层的界面内容,我们使用UIWindow和UIView来呈现界面。...UIWindow并不包含任何默认的内容,但是它被当作UIView的容器,用于放置应用中所有的UIView。...从继承关系来看,UIWindow继承自UIView,所以UIWindow除了具有UIView的所有功能之外,还增加了一些特有的属性和方法,而我们最常用的方法,就是在App刚启动时,调用UIWindow的...2、UIWindow的主要作用有: 1.作为UIView的最顶层容器,包含应用显示所有的UIView; 2.传递触摸消息和键盘事件给UIView; 把view添加到uiwindow 3、把view...添加到uiwindow上面 (1)直接将控制器的view添加到UIWindow中,并不理会它对应的控制器 [self.window addsubview:vc.view]; (2)设置uiwindow

1.7K10

iOS开发系列——纯代码实现iOS开发

*)launchOptions { //设置window属性(在KCAppDelegate中定义的window属性),初始化windows的大小和位置 self.window = [[UIWindow...UIView就是指界面可见的控件元素,所有的控件最终都继承自UIView,UIView中还可以添加其他UIView(通过addSubView方法); 在一个iOS应用中必须有一个主窗口UIWindow(...理论上也可以有多个UIWindow但是只有一个是主Window,而且只有主Window可以和用户交互),UIWindow也是继承自UIView,它拥有UIView的所有属性、方法; 在UIWindow中必须有一个根控制器...,这个控制器距离UIWindow是最近的;设置一个控制器为根控制器和直接通过addSubView添加控制器的视图(view属性)到window并不完全一样(例如如果仅仅添加控制器视图那么应用虽然可以显示但是不支持旋转...对象,同时把我们的视图控制器KCMainController设置为UIWindow的根视图控制器,然后设置这个UIWindow为主窗口并可见。

3.4K60
领券