ios uiwindow弹窗_iOS-UIWindow详解

1.UIWindow简介

UIWindow是一种特殊的UIView,通常在一个app中至少会有一个UIWindow。

iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的View,最后将控制器的View添加到UIWindow上,于是控制器的View就显示在屏幕上了。

一个iOS程序之所以能显示在屏幕上,完全是因为它有UIWindow,也就是说,没有UIWindow就看不到任何UI界面。

状态栏和键盘都是特殊的UIWindow。

那么UIWindow是如何将View显示到屏幕上的呢

这里有三个重要的对象UIScreen,UIWindow,UIView。

UIScreen对象识别物理屏幕连接到设备

UIWindow对象提供绘画支持给屏幕

UIView执行绘画,当窗口要显示内容的时候,UIView绘画出他们的内容并附加到窗口上。

这样View就显示在窗口上了

2.UIWindow的创建

1.UIWindow是什么时候创建的?

我们可以发现,当我们新建一个项目,直接在stroyboard为view设置一个背景颜色,然后运行项目,就能看到换了背景颜色的view,这说明系统已经帮我们创建了一个UIWindow,那么这个UIWindow是什么时候创建的?

我们找到程序的入口main函数,来看程序的启动过程

int main(int argc, char * argv[]) {

@autoreleasepool {

return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));

}

}

此时我们可以根据UIApplicationMain函数了解程序启动的过程

根据传递的类名创建UIApplication对象,这是第一个对象

创建UIApplication代理对象,并给UIApplicaiton对象设置代理

开启主运行循环 main events loop处理事件,保持程序一直运行

加载info.plist,判断是否指定mian(xib 或者 storyboard)如果指定就去加载

当我们把

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值